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

Docker cannot connect to the external network solution

尚
Original
2020-03-31 11:50:5010884browse

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 
>>>

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

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

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

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

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

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

Open the sysctl.conf file

vi /etc/sysctl.conf

Add the following code:

net.ipv4.ip_forward=1

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!

Statement:
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