首页 > 解决方案 > 使用 docker compose 标记图像/容器

问题描述

我正在尝试使用 docker compose 构建图像/容器。容器成功构建/运行,但图像REPOSITORYTAG两者都显示<none>在输出中,docker images并且容器获得自动生成的名称(例如eloquent_wiles)。我希望它用我的配置文件中指定的名称来标记图像/容器(在这种情况下,我希望它们被命名为“myservice”并且图像被标记为“v2”)。

我有以下内容docker-compose.yml

version: '3'
services:
  myservice:
    build: .
    image: myservice:v2
    container_name: myservice
    ports:
      - "1337:1337"

这是我的Dockerfile

FROM node:10

WORKDIR /usr/src/myservice
COPY . /usr/src/myservice
EXPOSE 1337/tcp
RUN yarn \
  && yarn transpile \
  && node ./build/grpc-server.js

docker -vDocker version 18.09.2, build 6247962

docker-compose -vdocker-compose version 1.22.0, build f46880fe

我正在跑步docker-compose build。我使用 docker-compose 版本 2 得到了相同的结果。

我想没有人能发现我做错了什么?

标签: dockerdocker-compose

解决方案


  1. 构建命名镜像:docker build -t <repo>:<tag> .在 Dockerfile 所在的目录中。
  2. 部署命名服务:docker stack deploy -c <your_yaml_file> <your_stack> --with-registry-auth在您的 YAML 所在的目录中。

推荐阅读