加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

覆盖docker-compose文件中的图像版本

发布时间:2020-12-16 03:27:55 所属栏目:安全 来源:网络整理
导读:我正在使用docker-compose.override.yml覆盖默认的docker-compose.yml文件,如此link所示,我可以在覆盖文件中指定端口和卷. 以类似的方式,是否也可以指定需要部署的映像版本?如果不是,在我们需要为图像指定不同版本的情况下,处理这种情况的最佳方法是什么?

我正在使用docker-compose.override.yml覆盖默认的docker-compose.yml文件,如此link所示,我可以在覆盖文件中指定端口和卷.

以类似的方式,是否也可以指定需要部署的映像版本?如果不是,在我们需要为图像指定不同版本的情况下,处理这种情况的最佳方法是什么?

对此的任何帮助都会很棒.

最佳答案
Docker已经拥有该功能.我尝试用简单的docker-compose覆盖图像名称,它正在工作.

例如,

docker-compose.yml与内容,

my-httpd:
  image: httpd:latest
  ports:
    - "1110:80"  

和docker-compose.override.yml一起包含内容,

my-httpd:
  image: httpd:2.4

在执行docker-compose -d之后,这里是docker ps info,

enter image description here

它使用来自docker-compose.yml(未覆盖)的端口和来自docker-compose.override.yml的图像,因为它在这里被覆盖.

注意:你有不同的名称和位置,你可以使用它像下面的命令而不是docker-compose -d,

docker-compose -f 

编辑2:

以上述方式覆盖只会替换非数组值,并且将合并数组变量.

例如,如果我在两个文件中都有一个数组的端口,那么它将绑定两个端口而不是仅仅从映射文件获取端口值,这与图像部分(非数组)不同.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读