docker-compose服务名称和容器名称区别

news/2024/10/18 5:46:28/

需求及结论

在docker-compose文件一般书写如下:

version: '3.8'
x-logging: &default-loggingoptions:max-size: "200m"max-file: "5"driver: json-file
x-environment: &default-environmentTZ: Asia/ShanghaiLANG: C.UTF-8
services:common-redis:image: "redis:6.2"container_name: "demo35-redis"ports:- "3535:6379"network_mode: demo35restart: alwaysenvironment: *default-environmentlogging: *default-loggingnetworks:demo35:external: true

其中common-redis是服务名称,demo35-redis是容器名称,一般在使用的时候都写成一样的。

但是由于公司正在开发项目太多,每次都改docker-compose文件的很多地方,比如容器名、服务名这些。非常繁琐,而且容易出错。就在想如果同一台服务器,不同docker-compose文件中服务名称可以一致,容器名称需要同一台服务器唯一。那就可以把容器名称配置成占位符,服务名称不变,减少工作量。

先说结论:上述猜想正确,同一台服务器,容器名称必须唯一,但是服务名称只需要保证同一个docker-compose中唯一即可。但是需要确保两个docker-compose文件在不同目录中。

测试过程

测试的目录结构如下:

docker_test
├── docker35
│   └── docker-compose-demo35.yml
└── docker36└── docker-compose-demo36.yml

docker-compose-demo35.yml文件内容:

version: '3.8'
x-logging: &default-loggingoptions:max-size: "200m"max-file: "5"driver: json-file
x-environment: &default-environmentTZ: Asia/ShanghaiLANG: C.UTF-8
services:common-redis:image: "redis:6.2"container_name: "demo35-redis"ports:- "3535:6379"network_mode: demo35restart: alwaysenvironment: *default-environmentlogging: *default-loggingnetworks:demo35:external: true

docker-compose-demo36.yml文件内容:

version: '3'
x-logging: &default-loggingoptions:max-size: "200m"max-file: "5"driver: json-file
x-environment: &default-environmentTZ: Asia/ShanghaiLANG: C.UTF-8
services:common-redis:image: "redis:6.2"container_name: "demo36-redis"ports:- "3636:6379"network_mode: demo36restart: alwaysenvironment: *default-environmentlogging: *default-loggingnetworks:demo36:external: true

可以看到上述两个文件,服务名称一致,都是common-redis,但是容器名称不一致,分别为demo35-redis和demo36-redis。

启动demo35文件夹下的服务,使用docker-compose -f docker-compose-demo35.yml up -d

启动docker36文件夹下的服务,使用docker-compose -f docker-compose-demo36.yml up -d

查看服务是否正常:

 发现两个服务均正常启动。

服务名称和容器名称的区别

1. 服务名称表示docker-compose中的服务名,如果使用docker-compose start等命令进行操作的时候,指定的是服务名而不是容器名,比如docker-compose start common-redis。服务名称是docker-compose文件唯一的。两个或者多个docker-compose可以不唯一。比如上述两个文件都叫common-redis。docker-compose ps 看到的是服务名称。

2. 容器名称是容器的名字,同一个服务器上只能有一个正常运行的同名容器,我们在docker ps时候看到的是容器名。

 


http://www.ppmy.cn/news/381718.html

相关文章

未来宝宝照片合成,怎么做到的呢?

大神们,可以看下这个网站,http://www.hechengbb.com/ (不是广告..) 通过上传两张照片合成出一个宝宝的照片 有大神做过么,或者了解原理的,望指点..

豌豆荚里有没有一种软件可以根据父母的照片测试出未来官宝宝的样子,父母照片重叠是宝宝的模样?看到关晓彤,网友:这颜值没谁了!...

生活中每一个人的颜值都是取决于父母的基因,而且在日常人们经常会听到说,父母两个人的照片重叠在一起,就是将来宝宝的模样。那么今天就和大家分享一下,看看娱乐圈的情侣,他们的照片重叠之后都是什么样子的吧&#xff1…

补贴宝宝照片

由于前段时间服务器崩溃,数据没有备份,损失了一些照片。现陆续整理一些出来。补贴上来。 最近一段时间的 Link URL: http://www.csjrc.com/default.asp?id97 来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/89703/viewspace-…

android电视照片墙,你家电视还在一成不变,有想过把电视藏进照片墙吗?

原标题:你家电视还在一成不变,有想过把电视藏进照片墙吗? 客厅装修好坏关乎主人的面子,可以说客厅的布置决定了住宅的第一印象,现代的人已经不是几十年前,一种格局千人一面。下面小编就给大家看看网友门独具…

Helocobic-energy 小电视

Helocobic-energy 心血来潮,突然想做一下稚晖君的小电视 文件结构 1、Frimware SCH&PCB 2、Code VSSTUDIO可运行的LVGL模拟器 STM32F411 LVGL demo 3、Out ModelPicturePDF 4、Other Material - 资料 设计 稚晖君小电视 方案: 芯片备注Stm32F411主控ES…

宝宝近况

这些天,我的身体也不好了,经常呕吐,医生说是精神紧张,明天去坐胃镜,先祝福一下自己。 小宝宝的情况仍然还是不好,昨天晚上去检查几乎使我彻底放弃希望,现在妈妈准备把他带回老家了,…

『摄影欣赏』好萌了!12幅可爱的婴儿照片【组图】

萌翻了!这是一组可爱的婴儿照片,你可以从中学习到优秀的婴儿照片拍摄技术。就像我以前说的,婴儿总是持续在运动,因此很难找到一个好的角度。拍摄的时候,试着和婴儿保持同一水平,使用长de 焦距。特别在最初几…