概述
我的docker
版本:24.0.2
docker-compose
版本:1.29.2
linux
是ubuntu 20.04
在使用docker
部署环境的时候大多用docker-compose
来编排,参数的配置会清晰一点。
通常一个容器一个docker-compose.yml
文件。
这就使得不同docker-compose
下的容器不能自动的互相通信。
那么顺着这个思路往下想,就需要让他们都加入同一个网络,问题就解决了。
加入同一网络方案
先创建一个公共网络
sudo docker network create dev_net
在各自的docker-compose
文件中声明该网络。
比如我这里有mysql
和nacos
两个容器,加入同一个网络后可以直接用容器name
来通信,并且端口可以直接使用容器内的端口.
启动之后可以可以容器内部,然后ping
一下对方的容器name
来测试下,如果ping
不通;此时可以手动让容器加入同一个网络。
该方案也适用于那些没有在docker-compose
中配置网络的容器,相当于手动让他们加入同一个网络
docker network connect dev_net nacos
mysql文章来源:https://www.toymoban.com/news/detail-718130.html
version: '3'
services:
mysql:
image: mysql:5.7.35 #镜像名称以及版本
deploy:
resources:
limits:
memory: 1G
restart: always #重启docker后该容器也重启
container_name: mysql_5_7 #容器名称
networks:
- dev_net
environment:
MYSQL_ROOT_PASSWORD: xxxx #指定用户密码
TZ: Asia/Shanghai
ports:
- 33306:3306 #本地端口号与容器内部端口号
volumes: #指定挂载目录
- ./data:/var/lib/mysql
- ./conf/my.cnf:/etc/mysql/my.cnf
networks:
dev_net:
external: true
nacos文章来源地址https://www.toymoban.com/news/detail-718130.html
version: '3'
services:
nacos:
image: nacos/nacos-server:v2.0.4
container_name: nacos
networks:
- dev_net
restart: always
ports:
- 8848:8848
- 9848:9848
- 9849:9849
environment:
TZ: Asia/Shanghai
MODE: standalone
SPRING_DATASOURCE_PLATFORM: mysql
#加入同一个网络后可以直接使用容器name来通信
MYSQL_SERVICE_HOST: mysql_5_7
#直接连接容器端口,不是映射到宿主机的端口
MYSQL_SERVICE_PORT: xxx
MYSQL_SERVICE_USER: x
MYSQL_SERVICE_PASSWORD: xxxxx
MYSQL_SERVICE_DB_NAME: nacos_config
MYSQL_SERVICE_DB_PARAM: characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=UTC
volumes:
- ./logs/:/home/nacos/logs
networks:
dev_net:
external: true
查看docker的network使用情况
#查看所有的网络
docker network ls
#删除某个网络---删除前要断开正在使用这个网络的容器
docker network rm 网络名
#将容器从某个网络中断开
docker network disconnect <network_name> <container_name_or_id>
#查看某个网络中使用的容器name列表
docker network inspect 网络名称 --format='{{ range $key, $value := .Containers }}{{ $value.Name }} {{ end }}'
到了这里,关于同一台宿主机不同的docker-compose下的容器互相通信;查看docker的network使用情况的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!