Home > Operation and Maintenance > Docker > Docker cannot connect to the external network solution

Docker cannot connect to the external network solution

Release: 2020-03-31 11:50:50
Original
10940 people have browsed it

Docker cannot connect to the external network solution

Docker cannot connect to the external network Solution:

1. If it has been used normally before, and then the host can access the external network, but the container cannot, you can Try restarting the docker service to solve the problem:

>>>sercice docker restart
#debian/ubutun中sh为dash,centos指bash
>>>docker run -it -v /yourfile:/file -p 8000:8000 /bin/bash imageid 
>>>
Copy after login

2. The docker container provides services and listens to port 8888. To enable external access, port mapping is required.

docker run -it --rm -p 8888:8888 server:v1
Copy after login

A problem occurs at this time. After deployment on virtual machine A, the 8888 port service can be accessed in A, but cannot be accessed in B.

This should be due to the request being intercepted.

Check firewall-cmd --state

If the output is "not running", FirewallD is not running, and all protection strategies are not started, then you can Rule out the firewall blocking the connection.

If the output is "running", it means that FirewallD is currently running. You need to enter the following command to see which ports and services are now open:

firewall-cmd --list-ports
firewall-cmd --list-services
Copy after login

There are two solutions:

1. Turn off the FirewallD service:

If you don’t need a firewall, just turn off the FirewallD service directly

systemctl stop firewalld.service
Copy after login

2. Add a policy to open the specified port to the outside world:

For example, if we want to open the external 5000/tcp port now, we can use the following command:

firewall-cmd --add-port=5000/tcp --permanent
firewall-cmd --reload
Copy after login

If we only temporarily open the port, remove the "--permanent" parameter in the first line of the command, then when This policy will become invalid when the FirewallD service is restarted again.

ip forwarding is not turned on

sysctl net.ipv4.ip_forward
Copy after login

If net.ipv4.ip_forward=0 is displayed, it means it is not turned on.

Open the sysctl.conf file

vi /etc/sysctl.conf
Copy after login

Add the following code:

net.ipv4.ip_forward=1
Copy after login

For more related tutorials, please pay attention to the docker tutorial column on the PHP Chinese website.

The above is the detailed content of Docker cannot connect to the external network solution. For more information, please follow other related articles on the PHP Chinese website!

Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template