精华内容
下载资源
问答
  • docker新增映射端口

    2019-11-29 16:56:49
    将主机的5601映射到相对应的docker镜像中去,11.11.1.5为镜像ip iptables -t nat -A DOCKER -p tcp --dport 5601 -j DNAT --to-destination 11.11.1.5:5601

    将主机的5601映射到相对应的docker镜像中去,11.11.1.5为镜像ip

    iptables -t nat -A DOCKER -p tcp --dport 5601 -j DNAT --to-destination 11.11.1.5:5601

    展开全文
  • 对于已经建立的docker容器,需要新增容器对主机的端口映射,主要分为三种: 一:通过修改配置文件修改docker容器端口映射 1.使用docker ps -a命令找到要修改容器的CONTAINER ID 2.运行以下命令,进入该容器目录 ...

    Docker容器修改端口映射

    https://zhuanlan.zhihu.com/p/94949253

    对于已经建立的docker容器,需要新增容器对主机的端口映射,主要分为三种:

    一:通过修改配置文件修改docker容器端口映射

    1.使用docker ps -a命令找到要修改容器的CONTAINER ID

    2.运行以下命令,进入该容器目录

    docker inspect【CONTAINER ID】| grep Id
    cd /var/lib/docker/containers

    2.停止容器

    docker stop [容器id]

    3.停止主机docker服务

    systemctl stop docker

    4.进入2得到的文件夹内,修改hostconfig.json 和 config.v2.json

    vi hostconfig.json
    
    比如新增一个 80 端口,在PortBindings下边添加以下内容,端口配置之间用英文字符逗号隔开
    
    "80/tcp": [ 
    {
     "HostIp": "0.0.0.0",
     "HostPort": "80"
     }
    ]
    接着修改vi config.v2.json, 找到ExposedPorts和Ports  仿照之前内容添加端口映射
    "ExposedPorts":  {
        "2000/tcp":   {}
    },
    
    "Ports":{
       "2000/tcp":[
            {
             "HostIp": "0.0.0.0",
             "HostPort":  "2000"
             }
    ]
    },

    5.保存之后重启docker服务和容器

    systemctl start docker
    docker start [docker id]

    二:把运行中的容器生成新的镜像,再新建容器

    1.提交一个运行中的容器为镜像

    docker commit [containerid] [new_imagename]

    2.运行新建的镜像并添加端口映射

    docker run -d -p 8000:80  [imagename] /bin/sh

    三:修改主机iptables端口映射

    docker的端口映射并不是在docker技术中实现的,而是通过宿主机的iptables来实现。通过控制网桥来做端口映射,类似路由器中设置路由端口映射。

    如果我们有一个容器的8000端口映射到主机的9000端口,先查看iptabes设置了什么规则:

    sudo iptables -t nat -vnL

    结果中有一条:

    Chain DOCKER (2 references)
    pkts bytes target prot opt in     out     source        destination         
     98  5872 RETURN  all  --  docker0 *     0.0.0.0/0     0.0.0.0/0           
    237 14316 DNAT    tcp  --  !docker0 *    0.0.0.0/0    0.0.0.0/0    tcp dpt:9000 to:172.17.0.3:8000

    我们可以看到docker创建了一个名为DOKCER的自定义的链条Chain。而我开放8000端口的容器的ip是172.17.0.3。

    也可以通过inspect命令查看容器ip

    docker inspect [containerId] |grep IPAddress

    我们想再增加一个端口映射,比如8081->81,就在这个链条是再加一条规则:

    sudo iptables -t nat -A  DOCKER -p tcp --dport 8081 -j DNAT --to-destination 172.17.0.3:81

    加错了或者想修改:先显示行号查看

    sudo iptables -t nat -vnL DOCKER --line-number

    删除规则3

    sudo iptables -t nat -D DOCKER 3
    展开全文
  • docker containers新增端口映射 查看当前容器ID docker ps -a 关闭容器 docker stop name/container id 修改hostconfig.json vi /var/lib/docker/containers/[容器ID]/hostconfig.json vi /var/lib/docker/...

    docker containers新增端口映射

    查看当前容器ID

    docker ps -a
    

    关闭容器

    docker stop name/container id
    

    修改hostconfig.json

    vi /var/lib/docker/containers/[容器ID]/hostconfig.json

    vi /var/lib/docker/containers/9f0b445196fb04f2437706d368941c8064065375527b1e8ddddb04a11a985fa6/hostconfig.json
    
    "PortBindings": {
        "8005/tcp": [
          {
            "HostIp": "",
            "HostPort": "8005"
          }
        ],
        "8006/tcp": [
          {
            "HostIp": "",
            "HostPort": "8006"
          }
        ]
    }
    
    • 容器ID
    • 使用docker ps -a 查到的是前几位
      容器id用Tab补全,此处需要完整名字

    修改config.v2.json

    vi /var/lib/docker/containers/[容器ID]/config.v2.json

    vi /var/lib/docker/containers/9f0b445196fb04f2437706d368941c8064065375527b1e8ddddb04a11a985fa6/config.v2.json
    
    "ExposedPorts": { "8005/tcp": {}, "8006/tcp": {} }
    
    
    
    
    
    • 容器ID
    • 使用docker ps -a 查到的是前几位
      容器id用Tab补全,此处需要完整名字

    重启docker

    
    service docker restart
    
    

    欢迎大家交流学习,任何问题都可以留言

    展开全文
  • Docker容器映射端口修改方法

    千次阅读 2019-07-26 10:31:58
    Docker容器启动后,有时候我们会在容器中安装一些应用,此时就会遇到一个问题,这些应用的端口也需要映射到宿主机,那么该如何做呢? 下面以一个oracle容器为例,展示这个过程。 环境准备 Linux: CentOS 7.3 Docker:...

    Docker容器启动后,有时候我们会在容器中安装一些应用,此时就会遇到一个问题,这些应用的端口也需要映射到宿主机,那么该如何做呢?
    下面以一个oracle容器为例,展示这个过程。

    环境准备

    Linux: CentOS 7.3
    Docker: 18.06.0-ce
    启动一个oracle数据库容器,但不使用-p指令进行端口映射,使用docker ps指令显示如下:
    在这里插入图片描述
    此时我们使用navicat是无法连接该数据库的

    方案一 修改iptable

    修改iptables添加映射端口

    在宿主机执行以下命令,即可达到目的

    iptables -A DOCKER -d 172.17.0.2/32 ! -i docker0 -o docker0 -p tcp -m tcp --dport 1521 -j ACCEPT
    
    iptables -t nat -A DOCKER ! -i br0 -p tcp -m tcp --dport 11522 -j DNAT --to-destination 172.17.0.2:1521
    

    重要参数说明:

    172.17.0.2: docker容器在docker中的ip,可通过"docker inspect `container_name` | grep IPAddress"获取
    1521: 容器内部应用对外暴露的端口
    11522: 容器内部应用端口映射到宿主机的端口
    

    此时就可以通过navicat访问oracle数据库。但是docker ps时不显示端口映射信息.

    修改iptables删除映射端口

    在宿主机执行以下命令,即可达到目的

    $ iptables -L --line-numbers 
    # 通过该指令获取filter表中要删除的iptables的序号。该指令显示结果如下:
    Chain DOCKER (1 references)
    num  target     prot opt source               destination         
    1    ACCEPT     tcp  --  anywhere             172.17.0.2           tcp dpt:ncube-lm
    2    ACCEPT     tcp  --  anywhere             172.17.0.2           tcp dpt:jamlink
    $ iptables -D DOCKER 序号
    $ iptables -L --line-numbers -t nat
    # 通过该指令获取nat规则的序号,该指令显示结果类似上一步
    $ iptables -t nat -D DOCKER 序号
    

    修改iptables修改映射端口

    删除原有的,然后新增即可,或者通过修改iptables 规则的方式即可实现。

    该方式实现原理简述

    docker run启动一个容器时,使用-p指令其实替我们自动往iptables的filter表和nat表插入了要映射的端口iptables规则,因此我们可以通过修改iptables的方式去修改容器的端口映射。

    方案二 修改容器配置文件

    $ systemctl stop docker
    # 修改前需要停止docker
    $ vi  /var/lib/docker/containers/容器ID的hash值/hostconfig.json
    # 容器ID的hash可通过docker ps获取容器ID,然后tab补全即可
    # 在该文件中"PortBindings":{}中插入以下内容即可
    "PortBindings":{"1521/tcp":[{"HostIp":"","HostPort":"11522"}]}
    # 1521是容器内部暴露的端口,11522是容器映射到宿主机的端口
    $ vi  /var/lib/docker/containers/容器ID的hash值/config.v2.json
    # 如果要映射的端口是原先容器没有对外暴露的,那么还需要修改config.v2.json文件,添加要暴露的端口
    "ExposedPorts":{"1521/tcp":{},"8080/tcp":{}},
    $ systemctl restart docker
    

    此时执行docker ps是可以看到容器端口映射信息的。

    展开全文
  • 解决Windows10下无法对docker容器进行端口访问(端口映射的问题) 在Windows10系统服务器中安装了dockerdocker-compose 并尝试在其中运行Nginx服务,映射也做好 问题:在主机的浏览器中,打开localhost:port无法...
  • docker run创建并运行容器的时候,可以通过-p指定端口映射规则。但是,我们经常会遇到刚开始忘记设置端口映射或者设置错了需要修改。当docker start运行容器后并没有提供一个-p选项或设置,让你修改指定端口映射...
  • docker运行容器时需要指定映射端口,那如果刚开始没有考虑的那么周全,后期遇到需要添加的端口时该怎么办呢。 网上常见的方法有两种: 1.配置防火墙转发端口。 2.把docker容器打包成镜像,然后以该镜像为基础新建...
  • 保存iptables配置信息到文件中,iptables-sava将会输出已设置的...这个命令可以看到docker端口映射信息以及ip地址,ip地址也可以在容器内查询。 3. 新增配置信息:分别在-A POSTROUTING、-A DOCKER ! -i、-A DOCKE.
  • 对运行中的Docker容器添加端口映射

    千次阅读 2018-04-15 22:10:52
    问题:如何对运行中的Docker容器添加端口映射? 解决方案如下: iptables -t nat -A DOCKER -p tcp --dport ${YOURPORT} -j DNAT --to-destination ${CONTAINERIP}:${YOURPORT} iptables -t nat -A ...
  • docker通过iptables新增、修改、删除镜像映射端口 新增镜像映射端口 // 先确认需要映射容器的内部IP,在容器内执行ifconfig ifconfig ![在这里插入图片描述](https://img-blog.csdnimg.cn/20210129114449584.png) //...
  • docker运行容器时需要指定映射端口,那如果刚开始没有考虑的那么周全,后期遇到需要添加的端口时该怎么办呢。 网上常见的方法有两种: 1.配置防火墙转发端口。 (iptables) 2.把docker容器打包成镜像,然后以该...
  • docker run可以指定端口映射,但是容器一旦生成,就没有一个命令可以直接修改。通常间接的办法是,保存镜像,再创建一个新的容器,在创建时指定新的端口映射。 但这样太麻烦了。现在有新方案来解决掉: 操作步骤:...
  • docker容器创建后新增端口映射

    千次阅读 2020-10-13 16:27:11
    需求场景:目前所做的动态插桩工具需要对 docker 容器中的 java web程序进行插桩,动态插桩工具能够根据 java web程序使用的端口号自动查找 web 程序的进程号,即 pid 。查找 pid 的时候使用了 netstat 命令,而做...
  • docker容器端口映射

    2019-06-24 18:39:17
    第一步:新建容器,不指定端口 docker run -d --name cdbdjc_test -P --privileged=true --env JAVA_OPTS=-Duser.timezone=GMT+08 -v /home/tomcat/cdbdjc_test:/usr/local/tomcat/webapps -v /h...
  • 修改已运行docker容器端口映射

    千次阅读 2019-03-01 09:46:54
    例如下面这个命令就会运行一个nginx容器,并且指定它的容器内的端口80与物理机中的端口8080进行映射。 sudo docker run --name nginx-demo \ -p 8080:80 \ -d nginx 因为端口映射一般是在容器建立的时候就设置好...
  • 在日常docker的运维中,经常遇到这样一个问题:已经配置运行的docker容器要根据业务需要增加端口映射到宿主机,如何简单有效的解决呢? 下面以mysql容器为例,详细说明操作步骤。 一、环境准备: # cat /etc/...
  • 有时候,我们需要给正在运行的容器添加端口映射,百度一下发现很多都是通过iptables,或者是通过将当前容器通过docker commit命令提交为一个镜像,然后重新执行docker run命令添加端口映射。这种方法虽然可以,但是...
  • docker容器一旦启动,参数就无法改变,生产环境中最常变的就是端口映射,为了解决这个问题,那么首先就要规划好,本文列出了两种端口规划方案,如果后续维护中出现了要增加端口映射的场景,本文也给出了动态端口映射...
  • docker容器一旦启动,参数就无法改变,生产环境中最常变的就是端口映射,为了解决这个问题,那么首先就要规划好,本文列出了两种端口规划方案,如果后续维护中出现了要增加端口映射的场景,本文也给出了动态端口映射...
  • ubuntu防火墙对docker容器进行控制 1、修改ufw默认的配置 vi /etc/default/ufw #把DEFAULT_FORWARD_POLICY修改为下面 DEFAULT_FORWARD_POLICY="ACCEPT" 2、修改docker文件 vi /etc/default/docker #...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 6,303
精华内容 2,521
关键字:

docker新增容器端口