详解Docker-compose networks 的例子

本站所有内容来自互联网收集,仅供学习和交流,请勿用于商业用途。如有侵权、不妥之处,请第一时间联系我们删除!Q群:迪思分享

免费资源网 – https://freexyz.cn/

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

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

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:

启动

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 的容器名称格式是:<项目名称><服务名称><序号>

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

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:

启动

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上启动就成功了。

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”

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

免费资源网 – https://freexyz.cn/


© 版权声明
THE END
★喜欢这篇文章吗?喜欢的话,麻烦动动手指支持一下!★
点赞7 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容