我有这个docker文件,它正在按预期工作.我有连接到localhost上的mysql的PHP应用程序.
# cat Dockerfile
FROM tutum/lamp:latest
RUN rm -fr /app
ADD crm_220 /app/
ADD crmBox.sql /
ADD MysqL-setup.sh /MysqL-setup.sh
EXPOSE 80 3306
CMD ["/run.sh"]
当我尝试将数据库作为单独的容器运行时,我的程序仍指向本地主机.当我连接到“ Web”容器时,我无法连接到“ MysqL1”容器.
# cat docker-compose.yml
web:
build: .
restart: always
volumes:
- .:/app/
ports:
- "8000:8000"
- "80:80"
links:
- MysqL1:MysqL
MysqL1:
image: MysqL:latest
volumes:
- "/var/lib/MysqL:/var/lib/MysqL"
ports:
- "3306:3306"
environment:
MysqL_ROOT_PASSWORD: secretpass
这类似于这里提出的问题…
最佳答案
首先,如果您不想从主机上调用MysqL 3306端口,则不应该公开它.现在,第二个链接已被弃用.您可以改用网络.我不确定是否要编写v.1,但在v.2中,公共docker-compose文件中的所有容器都在一个网络(more about networks)中,并且可以通过彼此命名来解决. docker-compose v.2文件的示例:
version: '2'
services:
web:
build: .
restart: always
volumes:
- .:/app/
ports:
- "8000:8000"
- "80:80"
MysqL1:
image: MysqL:latest
volumes:
- "/var/lib/MysqL:/var/lib/MysqL"
environment:
MysqL_ROOT_PASSWORD: secretpass
原文地址:https://www.jb51.cc/docker/532644.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。