我使用docker-compose来创建我的开发环境。我想建立一个特定的图像,但我不知道如何为该图像设置一个名称。

wildfly:
  build: /path/to/dir/Dockerfile
  container_name: wildfly_server
  ports:
   - 9990:9990
   - 80:8080
  environment:
   - MYSQL_HOST=mysql_server
   - MONGO_HOST=mongo_server
   - ELASTIC_HOST=elasticsearch_server
  volumes:
   - /Volumes/CaseSensitive/development/wildfly/deployments/:/opt/jboss/wildfly/standalone/deployments/
  links:
   - mysql:mysql_server
   - mongo:mongo_server
   - elasticsearch:elasticsearch_server

当我执行docker-compose时,一切正常,但我为新映像获得了一个随机名称。是否可以为构建映像设置一个名称?


当前回答

根据docker-compose 1.6.0:

如果使用新的文件格式,现在可以同时指定构建和图像键。Docker-compose build将构建图像并用您指定的名称标记它,而Docker-compose pull将尝试拉取它。

所以你的码头式作曲。Yml是

version: '2'
services:
  wildfly:
      build: /path/to/dir/Dockerfile
      image: wildfly_server
      ports:
       - 9990:9990
       - 80:8080

更新docker-compose

sudo pip install -U docker-compose==1.6.0

其他回答

根据docker-compose 1.6.0:

如果使用新的文件格式,现在可以同时指定构建和图像键。Docker-compose build将构建图像并用您指定的名称标记它,而Docker-compose pull将尝试拉取它。

所以你的码头式作曲。Yml是

version: '2'
services:
  wildfly:
      build: /path/to/dir/Dockerfile
      image: wildfly_server
      ports:
       - 9990:9990
       - 80:8080

更新docker-compose

sudo pip install -U docker-compose==1.6.0

如果你指定了image和build,那么Compose用image中指定的webapp和可选标签来命名构建的图像:

image: webapp:tag

在docker-compose文件中,它看起来像。

version: '3.9'
services:
  
  node-ecom:
    build: .
    image: "webapp:tag"
    container_name: node-ecom
    ports:
      - "4000:3000"
    volumes:
      - ./:/app:ro
      - /app/node_modules
      - /config/.env
    env_file:
      - ./config/.env

Sudo docker-compose -p <project_name>构建

指定项目名称

注意:命令中'-p'选项出现在'build'之前

裁判:https://docs.docker.com/compose/reference/

根据Docker 3.9版本的撰写,可以使用image: myapp:tag来指定名称和标签。

version: "3.9"
services:
  webapp:
    build:
      context: .
      dockerfile: Dockerfile
    image: webapp:tag

参考:https://docs.docker.com/compose/compose-file/compose-file-v3/

在docker-compose。在你的服务中添加image: " your - desired - name "行,例如,如果你的服务名称是wildfly,你想将你的图像命名为wildfly_img

wildfly: 图片:wildfly_img