What should I do if docker is created successfully but cannot connect?

PHPz
Release: 2023-04-18 09:15:52
Original
1545 people have browsed it

Written in front:
This article mainly talks about the reasons and solutions when docker is successfully created but cannot be connected. It is a practical article for docker beginners. The operations and solutions in the article are based on the Ubuntu system environment.

In the process of using docker, there are some situations where even if your container is successfully created, it cannot be connected. This situation often makes people very distressed and cannot find the problem. This article will use a practical case to explain the reasons and solutions for why docker is successfully created but cannot be connected.

Case description:

We used docker to create an nginx container on the local computer, but when accessing it, we could not connect successfully.
The steps are as follows:

  1. Install docker on the Ubuntu system

Enter the following instructions on the command line:

sudo apt-get install docker. io

After the installation is complete, use the following command to start docker:

sudo systemctl start docker

  1. Create nginx container on docker

Enter the following command on the command line:

sudo docker run --name mynginx -p 80:80 -d nginx

This command means: use the nginx image to create a new container, container The name is mynginx, which maps port 80 to the local port 80 and runs in the background.

  1. Verify whether the container is created successfully

Enter the following instructions on the command line:

sudo docker ps

If the following content is displayed, Indicates that the container is created successfully:

CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
aaed7c1b cccf nginx "/docker-entrypoint.…" 21 seconds ago Up 20 seconds 0.0.0.0:80->80/tcp mynginx

  1. Visit nginx in the browser

Enter localhost or 127.0.0.1 in the browser to see the nginx welcome interface.

However, in some cases, nginx cannot be accessed.

Problem analysis:

First of all, we need to confirm where the problem lies.

  1. View system firewall configuration

The default firewall tool of Ubuntu system is ufw, you can use the following command to view its configuration:

sudo ufw status

If the output is as follows, it means that the system firewall is on:

Status: active

To                         Action     From


22/tcp                               ’ ALLOW ’           ’ s ’s ’ s ’s ’ s ’ t - ----- ,                                                                      ##80/tcp ALLOW Anywhere
22/tcp (v6) ALLOW Anywhere (v6)
80/tcp (v6) Anywhere (v6)

At this time, we need to confirm port 80 Whether it has been allowed through the system firewall. As you can see from the above output, port 80 has been allowed access, so this is not the problem.

    Network connection status
If we use the ping command to check the network connection status of 127.0.0.1, we will find the following error message:

ping : connect: Network is unreachable

This means that the network connection problem lies here. Continue to investigate the cause.

    Is the local network address correct?
Try to connect to the local network address of the nginx container, because when we created the container, we mapped port 80 to the local port 80, so We need to use the local network address of the container to access it. You can use the following command to view the local container address:

sudo docker inspect mynginx | ​​grep IPAddress

The response should be similar to:

"IPAddress": "172.17.0.2",

Try to access 172.17.0.2 in the browser and you can see the nginx welcome page. It means that the port mapping and firewall rules are correct at this time. The problem is with the local network address settings.

Solution:

Modify the nginx configuration file, add a server node in the configuration file, hostname is the local IP address, as follows:

server {

listen 80 default_server;
listen [::]:80 default_server;

server_name localhost;

root /var/www/html;
index index.html index.htm;

location / {
    try_files $uri $uri/ =404;
}

# 新增的本机IP节点
server {
    listen 80;
    listen [::]:80;

    server_name <本机IP>;

    root /var/www/html;
    index index.html index.htm;

    location / {
        try_files $uri $uri/ =404;
    }
}
Copy after login
}

After the modification is completed, reload the nginx configuration file:

sudo nginx -s reload

Visit localhost or 127.0.0.1 again, and open it in the browser You can see the nginx welcome page.

Summarize:

The problem that docker is successfully created but cannot be connected may be related to the network connection status, system firewall configuration, local network address settings, etc. By troubleshooting the problem and taking appropriate solutions, it can be resolved smoothly. In the future use of docker, don't panic when you encounter problems. You must calm down, check the logs carefully, determine the problem, and then formulate a solution. Only in this way can you better master docker technology and improve development efficiency.

The above is the detailed content of What should I do if docker is created successfully but cannot connect?. For more information, please follow other related articles on the PHP Chinese website!

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
About us Disclaimer Sitemap
php.cn:Public welfare online PHP training,Help PHP learners grow quickly!