zoukankan      html  css  js  c++  java
  • 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,如下图可以看到端口已经添加上去了

    image-20210106103726755

    直接修改配置文件

    • 首先,通过docker ps命令查看所要修改的容器id

    • 之后,关闭docker!关闭docker!关闭docker!systemctl stop docker

    • 通过cd /var/lib/docker/containers/[之前查看的容器id]进入容器目录,结构如图

      image-20210106104148369

    • 修改hostconfig.json

      将该json格式化后如图

      image-20210106104706118

      仿照原有格式对配置文件进行修改,添加自己需要开放的端口,通过 ?PortBindings 在vim编辑器中查找到端口绑定相关配置 ,进行修改后保存

    • 修改config.v2.json

      image-20210106104947380

      同样格式化后找到ExposedPorts,如图所示

      image-20210106105055469

      仿照该格式,在vim编辑器中添加暴露的端口后保存

    • 重启容器 systemctl start docker

    • 查看容器状态 docker inspectnginx,或者直接docker ps 进行查看

      image-20210106105340226

      image-20210106105435513

  • 相关阅读:
    SpringMVC-注解式控制器详解-SpringMVC强大的数据绑定(1)
    SpringMVC-注解式控制器详解-SpringMVC强大的数据绑定
    关于BI商业智能的“8大问”|一文读懂大数据BI
    关于BI商业智能的“8大问”|一文读懂大数据BI
    符号表
    高性能MYSQL读书笔记1
    perl 打包成PAR包 类似JAR包
    perl 包函数变动 需要重新打包
    第一章 数据引用与匿名存储
    换部门与看录像——北漂18年(90)
  • 原文地址:https://www.cnblogs.com/FriendA1/p/14239817.html
Copyright © 2011-2022 走看看