因为docker容器在运行的时候,如果不指定端口映射参数,在容器外部是无法通过网络来访问容器内的网络应用的服务的,所以需要进行docker端口映射的设置;docker通过端口绑定主机系统的接口,允许非本地客户端访问容器内部运行的服务。
本教程操作环境:linux7.3系统、docker19.03版、Dell G3电脑。
doker是一个开源的应用容器引擎,说简单一点就是可以打包程序和运行环境,把环境和程序一起发布的容器。当你需要发布程序时,你可以使用doker将运行环境一起发布,其他人拿到你的程序后,可以直接运行,避免出现一次编译到处调试的尴尬局面。
说的再直白一点,doker的出现主要是为了解决,在我的机器上是正常的,为什么到你的机器上就不正常了的问题。Docker容器有运行、已暂停、重新启动、已退出四种状态。
为什么要进行doker端口映射?
docker容器在运行的时候,如果不指定端口映射参数(不配置宿主机器与虚拟机的端口映射),在容器外部是无法通过网络来访问容器内的网络应用和服务的(外部程序是无法访问虚拟机的,因为没有端口)。为了解决这个问题,就需要进行doker端口映射的设置。
docker通过端口绑定主机系统的接口,允许非本地客户端访问容器内部运行的服务。为了简便的使得容器间通信,docker提供了这种连接机制。
docker的两种种常见的端口映射方式
自动映射端口
-P使用时需要指定--expose选项,指定需要对外提供服务的端口 $ sudo docker run -t -P --expose 22 --name server ubuntu:14.04
使用docker run -P自动绑定所有对外提供服务的容器端口,映射的端口将会从没有使用的端口池中(49000..49900)自动选择,你可以通过docker ps,docker inspect 或者docker port 确定具体的绑定信息。
绑定端口到指定接口
基本语法
$ sudo docker run -p [([:[host_port]])|():] [/ udp]
默认不指定绑定ip则监听所有网络接口。
推荐学习:《docker视频教程》
以上是docker为什么要端口映射的详细内容。更多信息请关注PHP中文网其他相关文章!