千家信息网

Docker-compose networks的示例分析

发表于:2024-11-25 作者:千家信息网编辑
千家信息网最后更新 2024年11月25日,小编给大家分享一下Docker-compose networks的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!(
千家信息网最后更新 2024年11月25日Docker-compose networks的示例分析

小编给大家分享一下Docker-compose networks的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!

(系统: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:     - test2networks: backend:

启动

docker-compose up -ddocker ps -aCONTAINER ID    IMAGE        COMMAND       CREATED       STATUS       PORTS        NAMES4d05ceb2088d    busybox:latest   "top"        5 seconds ago    Up 4 seconds              ibaboss_test2_1f4ccafa24664    busybox:latest   "top"        5 seconds ago    Up 4 seconds              ibaboss_test1_1docker exec -it 4d05ceb2088d /bin/sh/ # ping test1PING test1 (172.19.0.2): 56 data bytes64 bytes from 172.19.0.2: seq=0 ttl=64 time=0.061 ms64 bytes from 172.19.0.2: seq=1 ttl=64 time=0.062 msping ibaboss_test1_1PING ibaboss_test1_1 (172.19.0.2): 56 data bytes64 bytes from 172.19.0.2: seq=0 ttl=64 time=0.045 ms64 bytes from 172.19.0.2: seq=1 ttl=64 time=0.056 ms64 bytes from 172.19.0.2: seq=2 ttl=64 time=0.061 ms# 在网络中可以通过 容器名字或者网络的别名 进行通信

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

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

container_name: appcat 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:   - backendnetworks: backend:

启动

docker-compose -f docker-compose_v1.yml up -ddocker ps -aCONTAINER ID    IMAGE        COMMAND       CREATED       STATUS       PORTS        NAMES132859fc77c2    busybox:latest   "top"        About a minute ago  Up About a minute            test2cd0a78dc9bd4    busybox:latest   "top"        About a minute ago  Up About a minute            test1docker exec -it 132859fc77c2 ping test1PING test1 (172.19.0.2): 56 data bytes64 bytes from 172.19.0.2: seq=0 ttl=64 time=0.070 ms64 bytes from 172.19.0.2: seq=1 ttl=64 time=0.068 ms64 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:# - mysqlmysql:image: "mysql"# container_name: "lnmp_mysql"# ports:# - "3306:3306"# expose:# - "3306"volumes:- /home/docker/conf/mysql_w:/etc/mysql:rwenvironment:- MYSQL_ROOT_PASSWORD=123456depends_on:- nginxnetwork_mode: "service:nginx"

以上是"Docker-compose networks的示例分析"这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注行业资讯频道!

0