如何使用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)的方式?

阿里斯·苏里诺(Aris Suryono)

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

为了使mediawiki服务连接到some-mysql容器,mediawiki容器必须与some-mysql容器位于同一网络上

假设mediawiki已经建立

首先,您需要了解某些MySQL使用的网络,

docker network ls

我猜是'some-mysql_default'

将媒体Wiki连接到某些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

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何从主机连接到数据库-在docker compose下运行的容器中的SQL Server

如何仅使用docker-compose.yml创建数据容器?

如何使用docker compose运行-

如何使用docker-compose.yml在Docker上运行Redis?

使用Docker Compose运行容器时创建数据库时出错

docker - 如何从 env.ini 文件外部为 docker-compose.yml 文件设置环境数据库?

如何使用 docker-compose.yml 而不是运行命令来配置这些 docker 容器?

如何使用docker-compose播种mongo数据库?

使用docker-compose.yml文件的docker内部的Mura CMS数据库连接问题

运行 docker-compose.yml 时无法创建数据库

如何指定要在docker-compose版本3中使用的容器运行时?

如何使用 docker-compose.yml 在映射为卷的目录中克隆 GitHub 存储库?

无法使用docker-compose在docker容器中运行命令

Python 应用程序如何使用 Docker-compose 查找 Postgres 数据库

如何使用docker-compose.debug.yml调试在docker中运行的节点?

如何使用 Docker 和 Docker Compose 从备份开始自动创建和运行“干净”的 SQL Server 数据库?

如何使用docker-compose运行SolrCloud

在docker-compose.yml中运行命令

如何使用rabbitmq docker compose yml文件构建Docker镜像?

Docker:除了 docker-compose.yml 之外,如何使用 Dockerfile

Docker使用终端上的表运行MysQL容器,但不使用docker-compose.yml运行

如何使用docker-compose.yml在容器内自动启动应用

如何使用 Docker for Docker Compose 容器化 MySQL?

如何使用docker-compose将docker容器彼此链接

如何使用docker-compose杀死特定的Docker容器?

在 docker compose 上运行时无法连接到 rails 应用程序中的数据库

无法使用docker-compose运行容器

每次我为WordPress运行docker-compose up时,数据库都是空的

Docker Compose保持容器运行