zoukankan      html  css  js  c++  java
  • Docker 更改容器映射端口

    1、编辑容器的配置文件进行更改端口;

    docker run 运行启动时  -p 可以指定容器启动映射端口 (0.0.0.0:18080 8080

    可以编辑配置文件 进行修改;(需要重启docker 服务 不止是是容器 才能生效。只能重启容器还是会覆盖的)

    2、查找需要更改端口的容器

    docker ps 

    3、根据 CONTAINER ID 查找 docker 配置文件; (容器文件配置默认  /var/lib/docker/containers

    因为我更改了 docker 默认存储位置。(docker info 可以查看docker信息)

    4、更改 docker 默认环境变量 默认配置 是 /var/lib/docker 

    在 docker 启动文件添加默认环境系统配置 " /etc/default/docker ":

    添加  Environment File 配置:

    # vi /usr/lib/systemd/system/docker.service

    在 [Serivce] 下添加
    EnvironmentFile=-/etc/default/docker #添加配置文件
    
    在 [Install] 下添加
    EnvironmentFile=-/etc/default/docker

    5、停止容器 

    docker stop [ID/name]

    6、停止 docker 服务

    systemctl stop docker 

    7、编辑 更改 容器的 配置文件 hostconfig.json 

    config.v2.json 是容器启动才会看到映射地址的、所以不必操作。

    /data/docker/containers/0731470143a94579b837b295f4c03a5f283e2bc1b0be746e7da451b9eb817120/hostconfig.json
    
    容器配置命名就是 以 CONTAINER ID 容器ID开头的

    8、查看编辑 hostconfig.json 文件; 

    jq . ./hostconfig.json
    
    # jq 查看json 格式文件 # 更改 HostPort 就是映射的宿主机端口。

     

    9、启动 docker 服务 启动容器

    docker start [ID/NAME]
    
    systemctl start docker 
    
    docker ps 查看看到更该了;

    10、容器启动、iptables 这个会自动加入的;直接 server iptables save 保存就好了。或者不放心可以直接添加端口 :

    宿主机添加端口:
    iptables -A INPUT -p tcp -m state --state NEW -m tcp --dport 58080 -j ACCEPT
    
    宿主机 nat 映射:
    iptables -A DOCKER ! -i docker0 -p tcp -m tcp --dport 58080 -j DNAT --to-destination 172.16.4.3:8080

    注:

    docker 在操作或者添加容器时候  先 service iptables save  然后再编辑添加重启。

    添加容器默认会添加映射到防火墙的,但是重启iptables 就会失效、所以要先保存再重启。

  • 相关阅读:
    java计算组合数
    编写一个方法,使用以上算法生成指定数目(比如1000个)的随机整数
    不用static,巧用对象.方法调用java中的函数
    主函数调用相同函数名的小知识
    poj 3608 旋转卡壳求不相交凸包最近距离;
    UVa1453或La4728 凸包+枚举(或旋转卡壳)
    hdu4666 最远曼哈顿距离
    poj2926 曼哈顿最远距离
    poj 2187 凸包加旋转卡壳算法
    UVa 10256 凸包简单应用
  • 原文地址:https://www.cnblogs.com/sharesdk/p/11396445.html
Copyright © 2011-2022 走看看