一、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
上。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/200338.html