zoukankan      html  css  js  c++  java
  • docker动态绑定端口

    一、背景

    在创建容器的时候,我们可以使用命令 docker container run -p host:container container-name 的方式来绑定端口,还可以使用docker-compose.yml文件来绑定端口。有时会有一个需求:在已经创建的容器上添加容器端口与主机端口的绑定,这时可以使用iptables命令来动态绑定端口,而不用重新创建容器。

    二、使用iptables动态绑定端口

    1、查看容器ip

    docker inspect <container-name | id> | grep IPAddress

    这一步后会输出容器的ip地址,端口绑定时会使用。

    2、端口绑定

    sudo iptables -t nat -A PREROUTING  -p tcp -m tcp --dport hostport -j DNAT --to-destination  containerip:port

    举个例子,使用命令

    sudo iptables -t nat -A PREROUTING  -p tcp -m tcp --dport 9030 -j DNAT --to-destination  172.22.0.2:9090

    将容器的9090端口和宿主机的9030端口绑定了起来,其中172.22.0.2是容器的ip地址。

    3、保存规则

    sudo iptables-save

    4、查看动态绑定的端口

     docker port <container-name | id> 不能查看使用iptables绑定的端口,要使用命令 iptables -t nat -nvL | grep container-ip 来查看。

  • 相关阅读:
    框架比较
    框架整理
    bootstrap-table中get请求携带的参数
    0514任务思路
    两台电脑对码云上面的项目进行迭代
    项目问题
    vue 中发送axios请求,解决跨域问题(没有config文件)
    正则表达式(未完待续)
    【转载】深入理解Linux文件系统
    浅谈IO优化
  • 原文地址:https://www.cnblogs.com/sench/p/8798353.html
Copyright © 2011-2022 走看看