在两个使用Bridge的容器中如果需要相互通信,不能直接使用ip:端口的方式进行连接,需要使用docker中的网络进行连接,以搭建mysql为例
1:创建网络
docker network create mysql_net
2:docker中使用:
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.1
container_name: gitea
environment:
- GITEA__database__DB_TYPE=mysql
- GITEA__database__HOST=mysql:3306 # 使用容器名:端口的方式访问
restart: always
networks:
- mysql_net # 加入网络
volumes:
- ./gitea:/data
- /etc/timezone:/etc/timezone:ro
- /etc/localtime:/etc/localtime:ro
ports:
- "3000:3000"
- "222:22"
-
external: true
表示这个网络已经手动创建 -
GITEA__database__HOST=mysql:3306
网络访问使用容器名:端口的方式访问