情景一:主机连接容器
需求:主机内的某个应用需要用到容器启动的数据库,主机的应用关于该容器数据库的host,port该如何填写?
情景二:容器连接容器
第一种:同一配置文件
第二种:不同配置文件
新建一个网络,把容器都加入到这个网络里
1
|
docker network create my_network
|
容器1:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
version: '3.3'
services:
maccms10:
image: esme518/docker-maccms10
container_name: maccms10
volumes:
- ./data:/var/www/html
ports:
- 2419:80
networks:
- my_network
environment:
- DB_HOST=mariadb
- DB_PORT=3306
networks:
my_network:
external: true
|
容器2:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
version: '3.3'
services:
mariadb:
image: mariadb:10.3
container_name: mariadb
volumes:
- ./mysql:/var/lib/mysql
- ./backup:/backup
environment:
- MARIADB_ROOT_PASSWORD=12345678
ports:
- 2420:3306
networks:
- my_network
networks:
my_network:
external: true
|
情景三:容器连接主机
1
2
3
4
5
6
7
8
9
10
11
12
|
version: '3.3'
services:
maccms10:
image: esme518/docker-maccms10
container_name: maccms10
volumes:
- ./data:/var/www/html
ports:
- 2419:80
environment:
- DB_HOST=host.docker.internal # 使用特殊的DNS名称连接到主机上的数据库
- DB_PORT=3306 # 主机上数据库的端口
|