docker中的端口映射理解
(2019-08-21 15:20:55)
标签:
dockerport映射 |
分类: linux |
在我们sudo docker ps -a的时候,会看到一个ports项
"Bridge": "",
"SandboxID":
"2d597d2fc2d27ac0bf043446de5e999cbac56a2216149c6b6afe7b4c991b9a14",
"HairpinMode": false,
"LinkLocalIPv6Address": "",
"LinkLocalIPv6PrefixLen": 0,
"Ports":
{
"8006/tcp": [
{
"HostIp":
"0.0.0.0",
"HostPort": "10006"
}
]
},
"SandboxKey": "/var/run/docker/netns/2d597d2fc2d2",
"SecondaryIPAddresses": null,
"SecondaryIPv6Addresses": null,
"EndpointID":
"805e43c3dbc6708d50e7f523877006b106a5db23e7250e44e350786d3c6d1442",
"Gateway":
"172.17.0.1",
"GlobalIPv6Address": "",
"GlobalIPv6PrefixLen": 0,
"IPAddress": "172.17.0.2",
"IPPrefixLen": 16,
"IPv6Gateway": "",
"MacAddress": "02:42:ac:11:00:02",
"Networks": {
"bridge": {
"IPAMConfig": null,
"Links": null,
"Aliases": null,
"NetworkID":
"52e4ba014ad72aa24da1b03cfd5bd6dd8a3c1e1240a375c6b0ac401f70d7df42",
"EndpointID":
"805e43c3dbc6708d50e7f523877006b106a5db23e7250e44e350786d3c6d1442",
"Gateway": "172.17.0.1",
"IPAddress": "172.17.0.2",
"IPPrefixLen": 16,
"IPv6Gateway": "",
"GlobalIPv6Address": "",
"GlobalIPv6PrefixLen": 0,
"MacAddress": "02:42:ac:11:00:02",
"DriverOpts": null
}
}
CONTAINER ID
IMAGE
COMMAND
CREATED
STATUS
PORTS
NAMES
39fb7bcaca17
seemmo/structure:1.4.7.14
"/workspace/seemideo…"
About a minute ago
Up About a minute
0.0.0.0:10006->8006/tcp
jolly_rosalind
这个ports的配置和业务是强相关的,要与业务的约定对应起来。
上面的8006/TCP是docker规定的端口号
10006这个是主机接收业务数据的端口号,即外部访问的ip。如果是http的话,会是http://主机ip:10006
的格式。
数据流:外部数据——》主机:10006——》docker:8006
使用sudo docker inspect
container_id可以看到docker虚拟出来的主机ip及其端口号的对应
上面的ip可以用ip addr看到docker0的ip
在我们运行docker时,会做一个映射关系脚本,其中的-p即为主机与docker的端口映射关系:
sudo docker run --privileged
--restart=always -v /dev/shm --tmpfs /dev/shm:exec -v
/system:/system -v /data:/data
-v /usr/lib/:/usr/lib/ -v /lib:/lib -v
/etc/localtime:/etc/localtime:ro -p 10006:8006 --ulimit
core=0 -itd seemmo/structure:1.4.7.14
参看
前一篇:linux磁盘满怎么办
后一篇:Word中插入部分横向页