【问题标题】:Is it possible to run multiple containers on Docker to run a common service?是否可以在 Docker 上运行多个容器来运行公共服务?
【发布时间】:2018-10-15 04:32:36
【问题描述】:
我对 Docker 很陌生,我遇到的最大问题是:
所以我问自己是否可以运行多个连接它们的容器(我看到有可能在 Docker 上创建一个网络,但我不知道它的局限性)并像 LAMP 一样作为单一服务运行.换句话说:
- Apache2 + PHP -> 与容器 nº2 连接 ||通过端口转发连接的主机。
- MySQL + PhpMyAdmin -> 与容器 nº1 连接
我仍然对 Docker 能做或不能做的所有事情感到非常困惑。
【问题讨论】:
标签:
docker
containers
lamp
【解决方案1】:
您可以通过将容器放在同一个网络中来实现这一点。
在主机上(包含数据库):
# docker-compose.yml
services:
db:
mediawiki_db:
image: mariadb
networks:
- mediawiki
ports:
- 3306:3306
networks:
mediawiki:
driver: bridge
在客户端(带有 phpmyadmin 的容器):
# docker-compose.yml
services:
phpmyadmin:
image: phpmyadmin/phpmyadmin
networks:
- db_mediawiki
networks:
db_mediawiki:
external: true
在server下的phpMyAdmin页面,填写db容器的IP。
还要确保您已授予 mysql 用户外部访问权限:
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%'
IDENTIFIED BY 'password'
WITH GRANT OPTION;
FLUSH PRIVILEGES;