gpt4 book ai didi

docker - 我的 docker 无法连接到互联网 - 即使使用正确的 dns

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

我在 CentOS Linux 版本 8.2.2004 上运行一个 docker 容器。 CentOs 服务器本身具有稳定的互联网连接。最终,我尝试使用以下 docker-compose.yaml 启动一个 docker 容器

version: '3'
services:
postgres:
restart: always
image: postgres:12.1
environment:
POSTGRES_PASSWORD: myusername
POSTGRES_USER: mypass
networks:
- myname
volumes:
- /home/user/data/myname:/var/lib/postgresql/data
ports:
- 5432:5432
web:
restart: always
build: .
environment:
JPDA_ADDRESS: 8001
JPDA_TRANSPORT: dt_socket
networks:
- myname
depends_on:
- postgres
ports:
- 80:8080
- 8001:8001
volumes:
- /home/user/data/images:/data/images
networks:
myname:
driver: bridge
但是在 docker-compose build无法访问 maven 存储库(由于 docker 中缺少 Internet 连接)。向 yaml 添加 dns 规则不会改变任何东西,设置 network_mode: "host" 也不会改变。
当我尝试执行时
docker run --dns 8.8.8.8 busybox nslookup google.com
;; connection timed out; no servers could be reached
尝试正常 ping 时,连接也失败
docker run -it busybox ping -c 1 8.8.8.8
1 packets transmitted, 0 packets received, 100% packet loss
然而
docker run --rm -it busybox ping 172.17.0.1
似乎工作得很好。
docker run --net=host -it busybox ping -c 1 8.8.8.8  
也可以
如何让 docker 连接到互联网?

最佳答案

看起来这是busybox的一个已知问题。在此处查看此线程:nslookup can not get service ip on latest busybox
简而言之,您必须使用 1.28.4 之前的 busybox 版本。
我刚刚在带有 Docker 19 的 CentOS 7 上运行了以下命令,它运行良好:

# docker run --dns 8.8.8.8 busybox:1.28.0 nslookup google.com

Server: 8.8.8.8
Address 1: 8.8.8.8 dns.google

Name: google.com
Address 1: 2a00:1450:4016:807::200e muc11s04-in-x0e.1e100.net
Address 2: 216.58.207.174 muc11s04-in-f14.1e100.net

关于docker - 我的 docker 无法连接到互联网 - 即使使用正确的 dns,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63259461/

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