gpt4 book ai didi

Docker composer 项目无法找到/ping 或连接到内部主机名

转载 作者:行者123 更新时间:2023-12-02 18:55:53 25 4
gpt4 key购买 nike

我正在使用 compose 运行一个 docker 项目(在 Ubuntu 14 上它的值(value))并且我的一个容器无法找到/查看/ping/连接到我的其他容器之一。
worker容器无法 ping 或连接到 db容器,而我无法 - 在我的一生中 - 理解为什么。

这是我的项目:

docker-compose.yml

version: '2'

services:
web:
build: ./web
depends_on:
- db
volumes:
- ./web/:/app/src
ports:
- "80:80"
- "443:443"
db:
build: ./db
volumes:
- "./.data/db:/var/lib/mysql"
- ./db/init:/docker-entrypoint-initdb.d
environment:
MYSQL_DATABASE: redacted
MYSQL_USER: redacted
MYSQL_PASSWORD: redacted
worker:
build: ./worker
volumes:
- ./worker/:/app
depends_on:
- db

worker /Dockerfile
FROM php:5.6-alpine
RUN docker-php-ext-install pdo_mysql

ADD redacted.php /app/redacted.php
CMD ["/app/redacted.php"]

worker /redacted.php
echo shell_exec('ping db -c 2');
$dbh = new PDO("mysql:host=db;dbname=redacted", "redacted", "redacted");

输出是:
worker_1  | ping: bad address 'db'
worker_1 | Warning: PDO::__construct(): php_network_getaddresses: getaddrinfo failed: Try again in /app/redacted.php on line 29
worker_1 | SQLSTATE[HY000] [2002] php_network_getaddresses: getaddrinfo failed: Try again

最佳答案

您需要 link在您的 docker-compose.yml .用它代替 depends_on因为它也满足了depends_on目的:

...
worker:
build: ./worker
volumes:
- ./worker/:/app
links:
- db

更多信息: https://docs.docker.com/compose/compose-file/#/links

关于Docker composer 项目无法找到/ping 或连接到内部主机名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39008354/

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