详解Docker-compose networks 的例子

2025-05-27 0 38

今天实验了下 docker 下的网络设置,记录一下过程,以免后面忘记。

(系统:Centos 7.4 ,docker 版本:18.03.1-ce, docker-compose version 1.18.0)

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23
cat docker-compose.yml

version: '3'

services:

test1:

image: busybox:latest # 镜像为 busybox

entrypoint: # 容器启动后执行 top 命令,使容器没法立即退出

- top

networks:

backend: # 使用指定的网络 backend, 并且设置网络别名为 test1,

aliases: # 设置网络别名后,可以在其他容器中 ping test1 访问到该容器

- test1

test2:

image: busybox:latest

entrypoint:

- top

networks:

backend:

aliases:

- test2

networks:

backend:

启动

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20
docker-compose up -d

docker ps -a

CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES

4d05ceb2088d busybox:latest "top" 5 seconds ago Up 4 seconds ibaboss_test2_1

f4ccafa24664 busybox:latest "top" 5 seconds ago Up 4 seconds ibaboss_test1_1

docker exec -it 4d05ceb2088d /bin/sh

/ # ping test1

PING test1 (172.19.0.2): 56 data bytes

64 bytes from 172.19.0.2: seq=0 ttl=64 time=0.061 ms

64 bytes from 172.19.0.2: seq=1 ttl=64 time=0.062 ms

ping ibaboss_test1_1

PING ibaboss_test1_1 (172.19.0.2): 56 data bytes

64 bytes from 172.19.0.2: seq=0 ttl=64 time=0.045 ms

64 bytes from 172.19.0.2: seq=1 ttl=64 time=0.056 ms

64 bytes from 172.19.0.2: seq=2 ttl=64 time=0.061 ms

# 在网络中可以通过 容器名字或者网络的别名 进行通信

Compose 的容器名称格式是:<项目名称><服务名称><序号>

虽然可以自定义项目名称、服务名称,但是如果你想完全控制容器的命名,可以使用这个标签指定:

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22
container_name: app

cat docker-compose_v1.yml

version: '3'

services:

test1:

image: busybox:latest

entrypoint:

- top

container_name: test1

networks:

- backend

test2:

image: busybox:latest

entrypoint:

- top

container_name: test2

networks:

- backend

networks:

backend:

启动

?

1

2

3

4

5

6

7

8

9

10

11

12
docker-compose -f docker-compose_v1.yml up -d

docker ps -a

CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES

132859fc77c2 busybox:latest "top" About a minute ago Up About a minute test2

cd0a78dc9bd4 busybox:latest "top" About a minute ago Up About a minute test1

docker exec -it 132859fc77c2 ping test1

PING test1 (172.19.0.2): 56 data bytes

64 bytes from 172.19.0.2: seq=0 ttl=64 time=0.070 ms

64 bytes from 172.19.0.2: seq=1 ttl=64 time=0.068 ms

64 bytes from 172.19.0.2: seq=2 ttl=64 time=0.059 ms

补充:

docker compose 多容器共用网络问题

前几天计划使用docker compose 编写一个多容器共用一个容器网络,结果总是报错,今天又试了一下才发现是端口绑定的问题造成的,端口只能绑定在产生网卡的容器上,绑定在其它窗口上就会报错,如下代码 mysql服务共用了nginx的网卡,在mysql里使用了port:3306时就会运行失败,将3306移到nginx上启动就成功了。

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31
version: '3.3'

services:

nginx:

image: "lnp_php"

# container_name: "lnmp_nginx"

ports:

- "80:80"

- "443:443"

- "3306:3306"

expose:

- "3306"

volumes:

- /home/www/php:/home/www:rw

# depends_on:

# - mysql

# links:

# - mysql

mysql:

image: "mysql"

# container_name: "lnmp_mysql"

# ports:

# - "3306:3306"

# expose:

# - "3306"

volumes:

- /home/docker/conf/mysql_w:/etc/mysql:rw

environment:

- MYSQL_ROOT_PASSWORD=123456

depends_on:

- nginx

network_mode: "service:nginx"

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持快网idc。

原文链接:https://www.cnblogs.com/klvchen/p/9243312.html

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。

快网idc优惠网 行业资讯 详解Docker-compose networks 的例子 https://www.kuaiidc.com/68201.html

相关文章

发表评论
暂无评论