docker compose未检测到本地图像
我想在已经本地存储了图像的Linux服务器上运行一个使用docker compose的应用程序 该应用程序由两个服务组成。在服务器上运行docker compose未检测到本地图像,docker,docker-compose,Docker,Docker Compose,我想在已经本地存储了图像的Linux服务器上运行一个使用docker compose的应用程序 该应用程序由两个服务组成。在服务器上运行docker images,表明这些图像确实存在: REPOSITORY TAG IMAGE ID CREATED SIZE app_nginx latest b8362b71f3da About an
docker images
,表明这些图像确实存在:
REPOSITORY TAG IMAGE ID CREATED SIZE
app_nginx latest b8362b71f3da About an hour ago 107MB
app_dash_alert_app latest 432f03c01dc6 About an hour ago 1.67GB
这是我的docker compose.yml
:
version: '3'
services:
dash_alert_app:
container_name: dash_alert_app
restart: always
build: ./dash_alert_app
ports:
- "8000:8000"
command: gunicorn -w 1 -b :8000 dash_histogram_daily_counts:server
nginx:
container_name: nginx
restart: always
build: ./nginx
ports:
- "80:80"
depends_on:
- dash_alert_app
当我运行时,docker compose pull
它似乎能够看到图像,并将它们拉入:
$ sudo docker-compose pull
Pulling dash_alert_app ... done
Pulling nginx ... done
但当我尝试旋转容器时,我得到以下提示,即仍然需要构建图像:
$ docker-compose up -d --no-build
ERROR: Service 'dash_alert_app' needs to be built, but --no-build was passed.
请注意,我已将docker配置为在/mnt/data/docker
中存储图像-这是我的/etc/docker/daemon.json
文件:
{
"graph": "/mnt/data/docker",
"storage-driver": "overlay",
"bip": "192.168.0.1/24"
}
以下是我的文件夹结构:
.
│ docker-compose.yml
└───dash_alert_app
└───nginx
为什么docker compose不使用本地存在的图像?看起来您忘记指定
图像
键了。另外,您真的必须使用docker compose build
重新构建映像,还是现有映像就足够了?如果是,请尝试以下方法:
version: '3'
services:
dash_alert_app:
image: app_dash_alert_app
container_name: dash_alert_app
restart: always
ports:
- "8000:8000"
command: gunicorn -w 1 -b :8000 dash_histogram_daily_counts:server
nginx:
image: app_nginx
container_name: nginx
restart: always
ports:
- "80:80"
depends_on:
- dash_alert_app
现有的图像已经足够了-我尝试了你的解决方案,效果很好。谢谢我发现需要这些图像密钥是令人困惑的,因为应用程序在我的windows机器上本地运行,没有它们也可以。