首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用`docker `命令生成坞标撰写文件时不要添加‘`name`’键值

使用`docker `命令生成坞标撰写文件时不要添加‘`name`’键值
EN

Stack Overflow用户
提问于 2022-04-14 16:28:24
回答 1查看 60关注 0票数 0

docker compose命令和docker-compose命令之间的实现似乎存在差异。尽管它们遵循相同的撰写规范。

服务

作为一个简单的例子,我有两个组合文件

docker-compose.hello-world.yml

代码语言:javascript
复制
version: '3.7'

services:
  hello:
    image: hello-world:nano-server
    container_name: hello_world

docker-compose.base.yml

非常简单的基文件

代码语言:javascript
复制
version: '3.7'
volumes:
  dummy-vol:

我可以使用-f标志覆盖它们,如下所示:

代码语言:javascript
复制
docker compose -f docker-compose.hello-world.yml -f docker-compose.base.yml config > docker-compose.yml

不一致

如果使用上述命令,则使用内置在Docker中的docker compose CLI:

代码语言:javascript
复制
docker compose -f docker-compose.hello-world.yml -f docker-compose.base.yml config

生成的结果配置如下:

这里,test-con只是我有文件的目录的名称

代码语言:javascript
复制
name: test-con
services:
  hello:
    container_name: hello_world
    image: hello-world:nano-server
    networks:
      default: null
networks:
  default:
    name: test-con_default

但是,当使用docker-compose CLI时,

代码语言:javascript
复制
docker-compose -f docker-compose.hello-world.yml -f docker-compose.base.yml config

生成以下输出:

代码语言:javascript
复制
services:
  hello:
    container_name: hello_world
    image: hello-world:nano-server
version: '3.7'
volumes:
  test: {}

如您所见,name键值不是用docker-compose生成的。

是否有一种方法来抑制从name CLI生成docker compose键值?

系统规格

docker version

代码语言:javascript
复制
Client:
 Version:           20.10.12
 API version:       1.41
 Go version:        go1.17.5
 Git commit:        e91ed5707e
 Built:             Mon Dec 13 22:31:40 2021
 OS/Arch:           linux/amd64
 Context:           default
 Experimental:      true

Server:
 Engine:
  Version:          20.10.12
  API version:      1.41 (minimum version 1.12)
  Go version:       go1.17.5
  Git commit:       459d0dfbbb
  Built:            Mon Dec 13 22:30:43 2021
  OS/Arch:          linux/amd64
  Experimental:     false
 containerd:
  Version:          v1.6.1
  GitCommit:        10f428dac7cec44c864e1b830a4623af27a9fc70.m
 runc:
  Version:          1.1.0
  GitCommit:        v1.1.0-0-g067aaf85
 docker-init:
  Version:          0.19.0
  GitCommit:        de40ad0

docker compose version

代码语言:javascript
复制
Docker Compose version 2.3.3

docker-compose version

代码语言:javascript
复制
docker-compose version 1.29.2, build unknown
docker-py version: 5.0.3
CPython version: 3.10.2
OpenSSL version: OpenSSL 1.1.1m  14 Dec 2021
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-04-20 09:15:53

当升级到v2.4.1进行对接时,此差异将得到解决。

在进行同样的测试时:

代码语言:javascript
复制
docker-compose -f docker-compose.hello-world.yml config > std.yml

以及

代码语言:javascript
复制
docker compose -f docker-compose.hello-world.yml config > cli.yml

并检查使用diff是否存在任何差异。

代码语言:javascript
复制
diff std.yml cli.yml

现在,在这两个工具中提供相同的配置。

代码语言:javascript
复制
name: test-com
services:
  hello:
    container_name: hello_world
    image: hello-world:nano-server
    networks:
      default: null
networks:
  default:
    name: test-com_default
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71874854

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档