是否可以 运行 Docker 上的多个容器到 运行 一个公共服务?
Is it possible to run multiple containers on Docker to run a common service?
我对 Docker 很陌生,我遇到的最大麻烦是:
- 尝试使用基本的 LAMP(包括 phpMyAdmin)制作我自己的图像
- 使用已经创建的 LAMP 个图像(This one works for me but I'm having troubles with phpMyAdmin and privileges)
所以我问自己是否有可能 运行 多个容器连接它们(我看到有可能在 Docker 上创建网络,但我不知道它限制)和 运行 像 LAMP 这样的单一服务。换句话说:
- Apache2 + PHP -> 连接容器 nº2 ||通过端口转发连接的主机。
- MySQL + PhpMyAdmin -> 连接容器 nº1
我仍然对 Docker 能做或不能做的所有事情感到很困惑。
您需要 docker-compose - 它允许通过一条命令 运行 多个容器:docker-compose up
.
您需要配置它们,例如:https://github.com/pnglabz/docker-compose-lamp.
您可以通过将容器放在同一网络中来实现此目的。
在主机上(包含数据库):
# 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;
我对 Docker 很陌生,我遇到的最大麻烦是:
- 尝试使用基本的 LAMP(包括 phpMyAdmin)制作我自己的图像
- 使用已经创建的 LAMP 个图像(This one works for me but I'm having troubles with phpMyAdmin and privileges)
所以我问自己是否有可能 运行 多个容器连接它们(我看到有可能在 Docker 上创建网络,但我不知道它限制)和 运行 像 LAMP 这样的单一服务。换句话说:
- Apache2 + PHP -> 连接容器 nº2 ||通过端口转发连接的主机。
- MySQL + PhpMyAdmin -> 连接容器 nº1
我仍然对 Docker 能做或不能做的所有事情感到很困惑。
您需要 docker-compose - 它允许通过一条命令 运行 多个容器:docker-compose up
.
您需要配置它们,例如:https://github.com/pnglabz/docker-compose-lamp.
您可以通过将容器放在同一网络中来实现此目的。
在主机上(包含数据库):
# 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;