小编给大家分享一下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:
- 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"
以上是“Docker-compose networks的示例分析”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注亿速云行业资讯频道!
亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。