docker使用容器网络
在两个使用Bridge的容器中如果需要相互通信,不能直接使用ip:端口的方式进行连接,需要使用docker中的网络进行连接,以搭建mysql为例
1:创建网络
docker network create mysql_net
2:docker run中使用:
docker run -d \--name=mysql \--restart=always \--network mysql_net \ # 加入网络-e TZ=Asia/Shanghai \-p 3306:3306 \-e MYSQL_ROOT_PASSWORD=root账号密码 \-v /home/hao/docker/mysql:/var/lib/mysql \mysql:8.4.5
--network mysql_net
加入创建的网络
3:docker compose中使用:
version: "3"networks:mysql_net:external: true # true 表示这个网络已经手动创建services:server:image: gitea/gitea:1.21.1container_name: giteaenvironment:- GITEA__database__DB_TYPE=mysql- GITEA__database__HOST=mysql:3306 # 使用容器名:端口的方式访问restart: alwaysnetworks:- mysql_net # 加入网络volumes:- ./gitea:/data- /etc/timezone:/etc/timezone:ro- /etc/localtime:/etc/localtime:roports:- "3000:3000"- "222:22"
-
external: true
表示这个网络已经手动创建 -
GITEA__database__HOST=mysql:3306
网络访问使用容器名:端口的方式访问
来源:http://blog.cdhr6.com/archives/shi-yong-dockerwang-luo