docker-compose 未检测到本地镜像

Mar*_*erg 5 docker docker-compose

我想在已本地存储图像的 Linux 服务器上使用 docker-compose 运行应用程序。

\n\n

该应用程序由两项服务组成。在服务器上运行docker images表明图像确实存在:

\n\n
REPOSITORY           TAG                 IMAGE ID            CREATED             SIZE\napp_nginx            latest              b8362b71f3da        About an hour ago   107MB\napp_dash_alert_app   latest              432f03c01dc6        About an hour ago   1.67GB\n
Run Code Online (Sandbox Code Playgroud)\n\n

这是我的docker-compose.yml

\n\n
version: \'3\'\n\nservices:\n\n  dash_alert_app:\n    container_name: dash_alert_app\n    restart: always\n    build: ./dash_alert_app\n    ports:\n      - "8000:8000"\n    command: gunicorn -w 1 -b :8000 dash_histogram_daily_counts:server\n\n\n  nginx:\n    container_name: nginx\n    restart: always\n    build: ./nginx\n    ports:\n      - "80:80"\n    depends_on:\n      - dash_alert_app\n
Run Code Online (Sandbox Code Playgroud)\n\n

当我运行时,docker-compose pull它似乎能够看到图像,并将它们拉入:

\n\n
$ sudo docker-compose pull\nPulling dash_alert_app ... done\nPulling nginx          ... done\n
Run Code Online (Sandbox Code Playgroud)\n\n

但是,当我尝试启动容器时,我收到以下消息,表明仍需要构建映像:

\n\n
$ docker-compose up -d --no-build\nERROR: Service \'dash_alert_app\' needs to be built, but --no-build was passed.\n
Run Code Online (Sandbox Code Playgroud)\n\n

请注意,我已配置 docker 来存储图像/mnt/data/docker- 这是我的/etc/docker/daemon.json文件:

\n\n
{\n    "graph": "/mnt/data/docker",\n    "storage-driver": "overlay",\n    "bip": "192.168.0.1/24"\n}\n
Run Code Online (Sandbox Code Playgroud)\n\n

这是我的文件夹结构:

\n\n
.\n\xe2\x94\x82   docker-compose.yml \n\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80dash_alert_app\n\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80nginx\n
Run Code Online (Sandbox Code Playgroud)\n\n

为什么 docker-compose 不使用本地存在的镜像?

\n

bel*_*ckn 5

您似乎忘记指定密钥image。另外,您是否真的需要再次构建图像​​,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
Run Code Online (Sandbox Code Playgroud)