您的位置:

Docker查看端口和端口映射

一、Docker查看端口映射

在Docker中,我们可以使用docker port命令来查看容器内部端口和主机映射的端口。

$ docker port [container_name]

例如,我们可以使用以下命令来查看名为web的容器的端口映射:

$ docker port web
80/tcp -> 0.0.0.0:32769

这意味着容器的端口80映射到主机的端口32769上。

二、查看Docker端口号

我们可以使用docker inspect命令来查看Docker容器的详细信息,其中包括容器的端口号。

$ docker inspect [container_name] | grep -i port

例如,如果我们想查找名为web的容器的端口号,我们可以使用以下命令:

$ docker inspect web | grep -i port
"Ports": {
    "80/tcp": [
        {
            "HostIp": "0.0.0.0",
            "HostPort": "32769"
        }
    ]
},

这意味着容器的端口80映射到主机的端口32769上。

三、Docker查看端口命令

除了docker port命令和docker inspect命令外,我们还可以使用docker ps命令来查看容器的端口信息。

$ docker ps

这将显示所有正在运行的容器的列表,其中包括容器的端口信息。

四、Docker查看端口占用

我们可以使用lsof命令来查看端口是否被占用。

$ sudo lsof -i :[port_number]

例如,如果我们想查看端口80是否被占用,我们可以使用以下命令:

$ sudo lsof -i :80

如果端口被占用,将显示相关进程的信息。

五、Docker查看端口占用情况

我们还可以使用netstat命令来查看端口的占用情况。

$ sudo netstat -tulpn | grep [port_number]

例如,如果我们想查看端口80的占用情况,我们可以使用以下命令:

$ sudo netstat -tulpn | grep 80

这将显示占用端口80的进程以及它们的PID。

六、Docker本地映射端口

在Docker中,我们可以使用-p选项将容器内部的端口映射到主机端口。

$ docker run -p [host_port]:[container_port] [image_name]

例如,如果我们想将容器web的端口80映射到主机的端口8080上,我们可以使用以下命令:

$ docker run -p 8080:80 nginx

七、Docker端口映射原理

Docker的端口映射原理是将主机的端口与容器的端口进行绑定,因此可以通过主机的端口来访问容器内的服务。

当我们运行一个容器并映射端口时,Docker会在主机的iptables规则中添加一条规则,使主机的请求被转发到容器的端口。

八、Docker修改容器端口

如果我们需要修改容器的端口,我们可以在容器运行时使用docker port命令来实现。

$ docker port [container_name] [new_port]/tcp

例如,如果我们想将名为web的容器的端口80修改为8080,我们可以使用以下命令:

$ docker port web 8080/tcp

现在容器的端口80将映射到主机的端口8080上。