共计 1091 个字符,预计需要花费 3 分钟才能阅读完成。
可以在一个docker-compose.yml「A」文件中定义网络,在另外的docker-compose.yml「B」文件中使用网络。
比如,A文件中定义数据库服务:
version: "3.7"
services:
mysql-blog:
image: mysql:5.7
volumes: # 数据卷,映射本地文件夹
- /data/mysql/blog:/var/lib/mysql
ports: # 如果不写端口映射的话,外部无法连接该mysql(下方WordPress连接没问题)
- "13306:3306" # 13306 是外部使用,不同的compose文件中使用时,请使用mysql的端口3306,即container中的端口
restart: always
environment:
MYSQL_ROOT_PASSWORD: "Xeroxes6136;cobras"
MYSQL_DATABASE: blog
MYSQL_USER: blog
MYSQL_PASSWORD: blog
networks:
mysql-blog:
aliases:
- mysql-blog # 给mysql-blog网络起别名,其它服务可通过别名引用
- mysql-blog2 # 可以有多个别名
networks:
mongo-blog:
name: mongo-blog
在B中引用A中的mongo-blog网络:
version: "3.7"
services:
blog:
image: wordpress:latest
volumes:
- /data/wordpress/blog:/var/www/html
ports:
- "63380:80"
restart: always
privileged: true
environment:
WORDPRESS_DB_HOST: mysql-blog:3306 # 这里使用网络名字即可连接
WORDPRESS_DB_NAME: your-db-name
WORDPRESS_DB_USER: your-db-user
WORDPRESS_DB_PASSWORD: your-db-password
# 定义域名
WORDPRESS_CONFIG_EXTRA: "define('WP_HOME','your-blog-domain'); define('WP_SITEURL','your-blog-domain');"
networks:
- mysql-blog
networks:
mysql-blog:
external: # 表示使用外部的网络
name: mysql-blog
在其它container自己的代码中,也可以使用mysql-blog:3306这样的字符串去连数据库。
正文完