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

  • 相关阅读:
    QT::目录/文件
    QT::标题栏/目录/托盘/工具条/状态栏
    QT::布局
    PHP 发送http请求
    php 图片缩放然后合成并保存
    PHP 打开已有图片进行编辑
    一些实用的方法整理(与语言无关)
    PHP 与pdf文档 与条码
    Excel导入遇到的问题An object with the same key already exists in the ObjectStateManager……
    【随笔】Apache降权和禁用PHP危险函数
  • 原文地址:https://www.cnblogs.com/FriendA1/p/14239817.html
Copyright © 2011-2022 走看看