gpt4 book ai didi

docker - docker-compose链接mysql和php容器

转载 作者:行者123 更新时间:2023-12-02 19:33:26 24 4
gpt4 key购买 nike

我有一个 docker 组成如下:

version: '3.2'
services:
web:
build: .
image: lap
volumes:
- ./webroot:/var/www/app
- ./configs/php.ini:/usr/local/etc/php/php.ini
- ./configs/vhost.conf:/etc/apache2/sites-available/000-default.conf

links:
- dbs:mysql
dbs:
image: mysql
ports:
- "3307:3306"
environment:
- MYSQL_ROOT_PASSWORD=root
volumes:
- ./configs/conf.d:/etc/mysql/conf.d
- /var/mysql:/var/lib/mysql
docker --version

Docker version 17.05.0-ce, build 89658be


docker-compose --version

docker-compose version 1.13.0, build 1719ceb


lsb_release -a

No LSB modules are available. Distributor ID: Debian Description: Debian GNU/Linux 8.10 (jessie) Release: 8.10 Codename: jessie



如果我运行以下命令并在php容器上检查/ etc / host,则看不到任何链接(我在执行docker container --link时看到的链接)
docker-compose up -d
docker exec -it web_1 bash
root@web_1> cat /etc/hosts

127.0.0.1 localhost

::1 localhost ip6-localhost ip6-loopback

fe00::0 ip6-localnet

ff00::0 ip6-mcastprefix

ff02::1 ip6-allnodes

ff02::2 ip6-allrouters

172.18.0.3 9c401ea7d031


dbs容器被分配了 127.18.0.2 ip地址,我期望的是上面 /etc/hosts中的类似内容

127.18.0.2 dbs mysql



我在一个Mac OSX系统中看到了相同的行为,可能是我做错了什么或缺少了什么?

最佳答案

可以通过docker-compose的service-name访问容器。 docker-compose的links只是此服务名称的别名。它应该可以通过service-namealias-name从同一网络访问。

在您的情况下:

尝试从web ping到dbsmysql

关于docker - docker-compose链接mysql和php容器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48720835/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com