如何使用 docker-compose.yml 为 docker 中的应用程序 运行 指定 docker 容器数据库?
How to specify a docker container database to a app running in docker with docker-compose.yml?
上下文
有这个docker-compose.yml:
version: '3'
services:
mediawiki:
image: mediawiki
restart: always
ports:
- 8080:80
links:
- database
volumes:
- /var/www/html/images
# After initial setup, download LocalSettings.php to the same directory as
# this yaml and uncomment the following line and use compose to restart
# the mediawiki service
# - ./LocalSettings.php:/var/www/html/LocalSettings.php
database:
image: mariadb
restart: always
environment:
# @see https://phabricator.wikimedia.org/source/mediawiki/browse/master/includes/DefaultSettings.php
MYSQL_DATABASE: my_wiki
MYSQL_USER: wikiuser
MYSQL_PASSWORD: example
MYSQL_RANDOM_ROOT_PASSWORD: yes
当我 运行 docker ps
我得到:
89db8794029a mysql:latest "docker-entrypoint..." ... 0.0.0.0:8083->3306/tcp some-mysql
这是一个 mysql docker 容器 运行ning.
问题
如何修改 docker-compose.yml
使数据库指向 mysql docker 容器 (89db8794029a) 已经 运行ning?
您不必在 yml 文件中添加数据库服务。
为了使 mediawiki 服务连接到 some-mysql 容器,mediawiki 容器需要与 some-mysql 容器
在同一网络上
假设 mediawiki 已经启动
首先,你需要知道一些-mysql使用什么网络,
docker network ls
我猜会是 'some-mysql_default'
将媒体维基连接到一些-mysql
docker network connect some-mysql_default mediawiki
现在,在 mediawiki 配置中使用 'some-mysql' 作为主机名数据库
或
yml 文件自动连接到mysql网络
version: '3'
services:
mediawiki:
image: mediawiki
restart: always
ports:
- 8080:80
links:
- database
volumes:
- /var/www/html/images
# After initial setup, download LocalSettings.php to the same directory as
# this yaml and uncomment the following line and use compose to restart
# the mediawiki service
# - ./LocalSettings.php:/var/www/html/LocalSettings.php
networks:
- default
- some-mysql_default
networks:
default: # this network
driver: bridge
some-mysql_default: # external network
external: true
上下文
有这个docker-compose.yml:
version: '3'
services:
mediawiki:
image: mediawiki
restart: always
ports:
- 8080:80
links:
- database
volumes:
- /var/www/html/images
# After initial setup, download LocalSettings.php to the same directory as
# this yaml and uncomment the following line and use compose to restart
# the mediawiki service
# - ./LocalSettings.php:/var/www/html/LocalSettings.php
database:
image: mariadb
restart: always
environment:
# @see https://phabricator.wikimedia.org/source/mediawiki/browse/master/includes/DefaultSettings.php
MYSQL_DATABASE: my_wiki
MYSQL_USER: wikiuser
MYSQL_PASSWORD: example
MYSQL_RANDOM_ROOT_PASSWORD: yes
当我 运行 docker ps
我得到:
89db8794029a mysql:latest "docker-entrypoint..." ... 0.0.0.0:8083->3306/tcp some-mysql
这是一个 mysql docker 容器 运行ning.
问题
如何修改 docker-compose.yml
使数据库指向 mysql docker 容器 (89db8794029a) 已经 运行ning?
您不必在 yml 文件中添加数据库服务。
为了使 mediawiki 服务连接到 some-mysql 容器,mediawiki 容器需要与 some-mysql 容器
在同一网络上假设 mediawiki 已经启动
首先,你需要知道一些-mysql使用什么网络,
docker network ls
我猜会是 'some-mysql_default'
将媒体维基连接到一些-mysql
docker network connect some-mysql_default mediawiki
现在,在 mediawiki 配置中使用 'some-mysql' 作为主机名数据库
或
yml 文件自动连接到mysql网络
version: '3'
services:
mediawiki:
image: mediawiki
restart: always
ports:
- 8080:80
links:
- database
volumes:
- /var/www/html/images
# After initial setup, download LocalSettings.php to the same directory as
# this yaml and uncomment the following line and use compose to restart
# the mediawiki service
# - ./LocalSettings.php:/var/www/html/LocalSettings.php
networks:
- default
- some-mysql_default
networks:
default: # this network
driver: bridge
some-mysql_default: # external network
external: true