docker给已运行容器添加开放端口
作者:互联网
docker给已运行容器添加开放端口
前情摘要
在学习nginx时,通过docker安装后,在配置文件中配置负载均衡,对不同的端口进行了监听,发现配置后的转发页面404,查看docker容器信息后发现,容器只开放了80端口,也就是容器创建运行时通过-p
参数指定的,但是nginx想要监听不同的端口,就必须得让容器开放该端口,同时得保证原有容器的配置和信息不变,于是有了以下解决方法
添加开放端口的方法
先提交再配置
# 将现有容器提交为镜像,nginx_add_port_8100(名字任意)
docker commit nginx nginx_add_port_8100
# 在该镜像的基础上重新创建容器并运行
docker run
--name nginx
-p 81:80
-p 8100:8100 # 新增需要开放的端口
-v /home/docker/nginx/html:/usr/share/nginx/html
-v /home/docker/nginx/conf/nginx.conf:/etc/nginx/nginx.conf
-v /home/docker/nginx/logs:/var/log/nginx
-v /home/docker/nginx/conf.d:/etc/nginx/conf.d
--restart always
-d nginx_add_port_8100
重新运行完毕后查看容器信息docker inspect nginx
,如下图可以看到端口已经添加上去了
直接修改配置文件
-
首先,通过
docker ps
命令查看所要修改的容器id -
之后,关闭docker!关闭docker!关闭docker!,
systemctl stop docker
-
通过
cd /var/lib/docker/containers/[之前查看的容器id]
进入容器目录,结构如图 -
修改hostconfig.json
将该json格式化后如图
仿照原有格式对配置文件进行修改,添加自己需要开放的端口,通过
?PortBindings
在vim编辑器中查找到端口绑定相关配置 ,进行修改后保存 -
修改config.v2.json
同样格式化后找到ExposedPorts,如图所示
仿照该格式,在vim编辑器中添加暴露的端口后保存
-
重启容器
systemctl start docker
-
查看容器状态
docker inspectnginx
,或者直接docker ps
进行查看
标签:容器,8100,端口,nginx,conf,docker 来源: https://www.cnblogs.com/FriendA1/p/14239817.html