docker 端口映射

在前面的文章中,已经提到了端口的映射操作,就是 docker run 命令里面就有开端口的操作!
但是在这里,在单独提取出来另开一篇文章!

我们的一些web应用部署到docker里面后,如果不针对docker里面的容器做一个端口映射,外部环境是无法访问到docker里面的资源的!

1.从外部环境访问容器

在执行 docker run 命令的时候,就需要指定一个端口
关键参数:

-p 可以指定一个端口映射
-P 可以随机分配一个端口进行映射

例子:

// 表示吧本地4322端口映射到容器的4322端口
docker run -d -p 4322:4322 nginx

前面的 4322 是容器内部的,后面的 4322 是宿主机器的

如果一个容器希望映射多个端口

// 此时会映射两个端口到nginx上
docker run -d -p 4322:4322 -p 4320:4320 nginx

如果想批量映射端口,指定一个端口的范围

// 指定端口映射范围
docker run -d -p 4000-4322:4000-4322 nginx

注意:映射的端口默认是对本地所有的地址进行映射,
也就是 localhost:4322 或者 127.0.0.1:4322 都可以访问到这个nginx

2.指定地址进行端口映射

在有些情况下,我们只希望 127.0.0.1这个地址才能访问到这个端口,不希望localhost方式访问到

docker run -d -p 127.0.0.1:4322:4322 nginx

此时就只有 127.0.0.1:4322 才可以访问到这个nginx,localhost:4322则访问不到

还可以使用udp标记来指定 udp端口:

docker run -d -p 127.0.0.1:4322:4322/udp nginx

3.查看端口的映射

docker port {容器名称 | 容器ID}

例子:

// 查看nginx的端口映射
docker port nginx

你可能感兴趣的:(docker 端口映射)