docker暴露端口的方式:
1:通过编写Dockerfile时指定EXPOSE 暴露的端口,然后通过docker build -t 新镜像名:版本 . 来构建一个新镜像,该镜像运行时会自动暴露指定端口。docker run时使用-P参数,会自动进行随机端口映射。ps:暴露端口并不意味着该端口在容器内部有程序占用
2:在运行镜像时,通过docker run -p的-p参数,指定端口映射,如-p 8081:8081 -p 8089:8089然后将该容器提成为一个新镜像,docker commit 容器名/容器id 新镜像名:版本,然后运行新镜像,该镜像运行时如果使用-P参数,亦会自动进行随机端口映射,如:::49153->8081/tcp。
3:通过修改指定容器的config.v2.json,来暴露指定端口。通过docker inspect 容器id/容器名,获取容器的Id,然后进入/var/lib/docker/containers/容器id,修改config.v2.json的ExposedPorts,指定要暴露的端口。修改前切记要先stop容器和docker服务,不然容器重启时又会自动覆盖修改的文件。
网友评论