Rumah > Operasi dan penyelenggaraan > Docker > docker不能连外网解决方法

docker不能连外网解决方法

Lepaskan: 2020-03-31 11:50:50
asal
10921 orang telah melayarinya

docker不能连外网解决方法

docker不能连外网解决方法:

1、如果之前一直正常使用,然后发生宿主机可访问外网,但容器不能的问题,可以尝试重启docker服务解决:

>>>sercice docker restart
#debian/ubutun中sh为dash,centos指bash
>>>docker run -it -v /yourfile:/file -p 8000:8000 /bin/bash imageid 
>>>
Salin selepas log masuk

2、docker容器内提供服务并监听8888端口,要使外部能够访问,需要做端口映射。

docker run -it --rm -p 8888:8888 server:v1
Salin selepas log masuk

此时出现问题,在虚机A上部署后,在A内能够访问8888端口服务,但是在B却不能访问。

这应该是由于请求被拦截。

查看firewall-cmd --state

如果输出的是“not running”则FirewallD没有在运行,且所有的防护策略都没有启动,那么可以排除防火墙阻断连接的情况了。

如果输出的是“running”,表示当前FirewallD正在运行,需要再输入下面的命令查看现在开放了哪些端口和服务:

firewall-cmd --list-ports
firewall-cmd --list-services
Salin selepas log masuk

解决方案有两种:

1.关闭FirewallD服务:

如果您不需要防火墙,那直接关掉FirewallD服务就好了

systemctl stop firewalld.service
Salin selepas log masuk

2.添加策略对外打开指定的端口:

比如我们现在要打开对外5000/tcp端口,可以使用下面的命令:

firewall-cmd --add-port=5000/tcp --permanent
firewall-cmd --reload
Salin selepas log masuk

如果只是临时打开端口,去掉第一行命令中的“--permanent”参数,那么当再次重启FirewallD服务时,本策略将失效。

ip转发没有打开

sysctl net.ipv4.ip_forward
Salin selepas log masuk

显示net.ipv4.ip_forward=0则表示未打开。

打开sysctl.conf文件

vi /etc/sysctl.conf
Salin selepas log masuk

添加如下代码:

net.ipv4.ip_forward=1
Salin selepas log masuk

更多相关教程,请关注PHP中文网docker教程栏目。

Atas ialah kandungan terperinci docker不能连外网解决方法. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan