【发布时间】:2017-10-02 05:40:24
【问题描述】:
过去 2 天我一直在与 docker 搏斗,并阅读了 docker 官方网站和 * 上的大量页面,但我只阅读的所有内容似乎都增加了混乱。不仅因为 docker-compose.yml 文件的语法似乎随着每个版本而变化。
我已经设法让我的网站使用以下配置运行,但存在一些主要问题。
服务似乎无法在您期望的地方提供。
每次我重新启动 docker (docker-compose up) 时,我都必须确保我的 MySQL 容器的 IP 地址没有改变。当它发生变化时,我需要更改我的代码,以便它连接到正确的服务器。这会造成一个无法使用的环境。
当我最终发现我可以通过为连接选择一些模糊的 IP 地址 (172.18.0.x) 来使 MySQL 工作之后,我的下一个问题是在 PHP 容器中也可以使用 memcached。将此处的 IP 地址更改为不起眼的 docker IP 在我的 GIT 存储库中也不会很好看。
有什么办法可以普遍解决这个问题,而不是每次添加服务时都必须处理同样的晦涩问题?
这是我的 docker-compose.yml:
version: "3.3"
services:
memcached:
image: memcached:alpine
container_name: gok_mamcached
ports:
- "11211:11211"
expose:
- 11211
mysql:
image: mysql:5.7
container_name: gok_mysql
environment:
- MYSQL_ROOT_PASSWORD=root
- MYSQL_DATABASE=database
- MYSQL_USER=user
- MYSQL_PASSWORD=password
ports:
- "3306:3306"
expose:
- 3306
restart: always
php:
image: wildscamp/php
container_name: gok_php
environment:
- TIMEZONE=Asia/Hong_Kong
ports:
- "80:80"
- "443:443"
working_dir: /var/www/html
links:
- mysql
restart: always
请帮助我摆脱这个噩梦。
谢谢。
【问题讨论】:
标签: php mysql docker memcached docker-compose