如何使用docker-compose.yml指定docker容器数据库到在docker中运行的应用程序?

上下文

有这个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容器。

我该如何修改docker-compose.yml ,使数据库指向mysql docker容器(89db8794029a)已经运行?

您不必在yml文件上添加数据库服务。

为了将mediawiki服务连接到some-mysql容器,mediawiki容器需要与某个mysql容器在同一个networking上

假设mediawiki已经启动

首先,你需要知道some-mysql使用什么networking,

 docker network ls 

我猜这将是'some-mysql_default'

把媒体wiki连接到some-mysql

 docker network connect some-mysql_default mediawiki 

现在,在mediawikiconfiguration中使用'some-mysql'作为主机名数据库

要么

yml文件自动连接到mysqlnetworking

 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