zoukankan      html  css  js  c++  java
  • 更改 Docker 容器端口映射 (创建, 替换, 修改, 运行时)

    我们的目标是星辰大海更改 Docker 容器端口映射


    以下方法在 Ubuntu16.04 下测试通过

    但我觉得还是蛮通用的


    1.创建容器时的端口映射
     
    docker run -d -p 80:80 --name name 
    2.替换容器,需要停止容器
     
    $ docker stop A $ docker commit A imageA $ docker rm A $ docker run -d -p 80:80 --name A imageA 
    3.修改容器的配置,需要重启 DOCKER 服务,否则会失败
    1. 停止容器,停止服务(systemctl stop docker/service docker stop)
     
    $ docker stop A $ systemctl stop docker 
    1. 修改 /var/lib/docker/containers/{容器 ID+ 一些字符串}/hostconfig.json 中
     
    "PortBindings":{"容器端口/tcp":[{"HostIp":"","HostPort":"宿主机端口"}] 

    同时修改同目录下的 config.v2.json 中 "ExposedPorts":{"容器端口/tcp":{}}

     
    "Ports":{"容器端口/tcp":[{"HostIp":"0.0.0.0","HostPort":"宿主机端口"}]} 
    1. 重启服务,启动容器(systemctl start docker/service docker start)
     
    $ systemctl start docker $ docker start A 

    例 hostconfig.json 已删除不相关配置,只保留格式

     
    { "Config": { "ExposedPorts": { "5700/tcp": {}, "6700/tcp": {}, "9000/tcp": {} } }, "NetworkSettings": { "Ports": { "5700/tcp": [{ "HostIp": "0.0.0.0", "HostPort": "10086" }], "6700/tcp": [{ "HostIp": "0.0.0.0", "HostPort": "6700" }], "9000/tcp": [{ "HostIp": "0.0.0.0", "HostPort": "8080" }] } } } 

    例 config.v2.json 已删除不相关配置,只保留格式

     
    { "PortBindings": { "5700/tcp": [{ "HostIp": "", "HostPort": "10086" }], "6700/tcp": [{ "HostIp": "", "HostPort": "6700" }], "9000/tcp": [{ "HostIp": "", "HostPort": "8080" }] } } 
    4.在容器运行时添加映射
     
    iptables -t nat -A DOCKER -p tcp --dport 宿主机端口 -j DNAT --to-destination 容器ip:容器端口 

    查看容器 ip

     
    docker inspect --format='{{.NetworkSettings.IPAddress}}' $(docker ps -a -q)
  • 相关阅读:
    b_lg_选学霸(并查集+01背包)
    b_lq_小明的魔法(反向思维)
    多测师课堂019_第一个月综合面试题(01) _高级讲师肖sir
    多测师课堂017_项目数据 _高级讲师肖sir
    linux whoami 显示当前用户的用户名
    linux shutdown 命令 关机 重启
    linux reboot 重启命令
    linux基础 目录
    linux uname 命令 打印系统信息
    前端 CSS层叠性 CSS选择器优先级
  • 原文地址:https://www.cnblogs.com/zwjphp/p/13633565.html
Copyright © 2011-2022 走看看