docker已启动容器修改添加端口映射的两种方法

目录
  • 简述
  • 一、先提交,在配置
    • 1、先将容器提交为镜像
    • 2、创建新的容器并运行
  • 二、 修改配置文件
    • 1、关闭docker服务
    • 2、修改hostconfig.json
    • 3、修改config.v2.json
    • 4、重启 docker服务
    • 5、查看配置项已经修改成功
  • 补充:docker容器怎么开端口
  • 总结

简述

正常情况下,在你创建容器时可以添加多个端口映射,写法如下

每个端口映射都加一个-p
docker run -itd --name centos -p 4000:8081 -p 3306:3306 --privileged centos:latest /usr/sbin/init

如果你已经创建容器并且启动,在想保留容器已有配置的前提下想修改添加端口映射有如下两种方法

一、先提交,在配置

如下,我想给 ms_tomcat 容器添加 3306 端口映射

docker ps -a

1、先将容器提交为镜像

docker commit ms_tomcat ms_tomcat_3306

2、创建新的容器并运行

docker run -itd --name ms_tomcat -p 8081:8080 -p 3306:3306 --restart always --privileged centos:latest /usr/sbin/init

二、 修改配置文件

依然修改ms_tomcat容器,添加 27017 端口

1、关闭docker服务

一定要停止docker服务,我开始忘了关闭,修改两次都没成功

systemctl stop docker

2、修改hostconfig.json

vim /var/lib/docker/containers/CONTAINER ID/hostconfig.json

修改CONTAINER ID 为容器id

查看容器id ,输入 vim /var/lib/docker/containers/ 并粘贴容器id,tab键自动补全,最后输入要修改的文件hostconfig.json

修改如下位置

在配置项 "PortBindings"添加如下配置

3、修改config.v2.json

和上面类似

vim /var/lib/docker/containers/CONTAINER ID/config.v2.json

修改如下位置

在配置项 "ExposedPorts"添加如下配置

4、重启 docker服务

service docker restart

5、查看配置项已经修改成功

docker inspect ms_tomcat

补充:docker容器怎么开端口

方法一

docker commit
docker run -p containerid

通过以上命令创建新的镜像文件,run -p参数开放新端口出来;实际使用上不方便。

方法二

宿主机(host)上修改iptables 规则,开放容器的响应端口;参考网上的命令

iptables -t nat -A DOCKER -p tcp -dport 8080 -j DNAT --to-destination 172.17.0.2:8080

当我们创建nginx镜像时,并且启动nginx时,我们只能在容器内部区访问nginx的网址。所以为了容器之外能访问,需要暴露端口,也就需要了将容器内部的端口映射出去。

docker容器暴露端口的形式有四种:

1、-p

将指定的容器端口映射到宿主机所有地址的一个随机端口

2、-p :

将容器端口映射到指定的主机端口

3、-p ::

将容器端口映射到主机指定ip的随机端口

4、-p ::

将容器端口映射到指定主机ip的指定端口

总结

到此这篇关于docker已启动容器修改添加端口映射的两种方法的文章就介绍到这了,更多相关docker容器修改添加端口映射内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • docker容器启动后添加端口映射

    概要 网上有许多人在查找关于容器启动后能否进行端口映射的问题.我曾经也问过度娘,很遗憾我没找到.本文就这个问题给出一个解决方法,旨在抛砖引玉.本文的思路是使用iptables的端口转发,这也是docker端口映射内部的实现机制,只不过我是显示地写出来罢了,为的就是让查找这个问题的人对docker的端口映射有一个直观的了解. 结论:容器启动后是可以添加端口映射的,但不建议手工添加,最好使用docker提供的功能. 步骤 创建两个容器并进行了端口映射,结果如图所示: 假如,我start一个容器,其内

  • Docker端口映射的实现

    docker容器在启动的时候,如果不指定端口映射参数,在容器外部是无法通过网络来访问容器内的网络应用和服务的. 亦可使用Dockerfile文件中的EXPOSE指令来配置. 端口映射可使用-p.-P来实现: -p指定要映射的端口,一个指定端口上只可以绑定一个容器 -P将容器内部开放的网络端口随机映射到宿主机的一个端口上 端口映射支持的格式: ip:hostport:containerport #指定ip.指定宿主机port.指定容器port ip::containerport #指定ip.未指定

  • Docker学习笔记之Docker端口映射

    最近在学习docker,今天了解了Docker端口映射,给自己留个小笔记,也分享给大家 为什么要端口映射? 在启动容器时,如果不配置宿主机器与虚拟机的端口映射,外部程序是无法访问虚拟机的,因为没有端口. 端口映射的指令是什么? docker指令:docker run -p ip:hostPort:containerPort redis 使用-p参数会分配宿主机的端口映射到虚拟机. IP表示主机的IP地址. hostPort表示宿主机的端口. containerPort表示虚拟机的端口. 支持的格

  • Docker 端口映射详细介绍

    Docker 端口映射: 最近抽空,把Docker 端口映射的资料整理了一下,以便后续项目应用,大家也可以参考下. # Find IP address of container with ID <container_id> 通过容器 id 获取 ip $ sudo docker inspect <container_id> | grep IPAddress | cut -d '"' -f 4 无论如何,这些 ip 是基于本地系统的并且容器的端口非本地主机是访问不到的.此外

  • 详解Docker 端口映射与容器互联

    1.端口映射实现访问容器 1.从外部访问容器应用 在启动容器的时候,如果不指定对应的参数,在容器外部是无法通过网络来访问容器内部的网络应用和服务的. 当容器中运行一些网络应用,要让外部访问这些应用时,可以通过-p或-P参数来指定端口映射.当使用-P(大写P)标记时,Docker会随机映射一个端口到内部容器开放的网络端口(端口范围在Linux系统使用的端口之外,一般都过万): [root@docker ~]# docker run -d --name nginx_1 -P nginx:latest

  • Docker 给运行中的容器设置端口映射的方法

    一.概念 Docker 端口映射即映射容器内应用的服务端口到本机宿主机器. 二.实现 当容器中运行一些网络应用,要让外部访问这些应用时,可以通过 -P 或 -p 参数两种方式来指定端口映射. 1. 随机映射 使用 -P 参数时,Docker 会随机映射一个端口到内部容器开放的网络端口,如下开启一个 nginx 服务: $ docker run -d -P nginx e93349d539119dc48dc841e117f6388d6afa6a6065b75a5b4aedaf5fb2a051fc

  • 用KWF打造与众不同的VPN服务器

    大家常用Windows系统的"路由和远程访问"组件架设VPN服务器,但此方法配置较为复杂.如果能将网络防火墙和VPN功能集成在一起,就可以简化架设过程,并且还可以利用防火墙策略增强VPN服务的安全.Kerio Winroute Firewall(以下简称KWF)就是这样一款工具,它内置了VPN服务器,并且还可以利用KWF的内置功能增强安全.方便VPN管理,如何利用KWF架设VPN服务器,下面就一起来看吧! 安装VPN服务器 KWF内置了VPN服务,并且VPN服务的安装过程非常简单,不需

  • docker已启动容器修改添加端口映射的两种方法

    目录 简述 一.先提交,在配置 1.先将容器提交为镜像 2.创建新的容器并运行 二. 修改配置文件 1.关闭docker服务 2.修改hostconfig.json 3.修改config.v2.json 4.重启 docker服务 5.查看配置项已经修改成功 补充:docker容器怎么开端口 总结 简述 正常情况下,在你创建容器时可以添加多个端口映射,写法如下 每个端口映射都加一个-p docker run -itd --name centos -p 4000:8081 -p 3306:3306

  • Vue 实现列表动态添加和删除的两种方法小结

    下面将介绍两种方式实现动态添加和删除列表 1.不使用组件 <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>Vue 测试实例 - vue实现列表增加和删除</title> <script src="https://cdn.bootcss.com/vue/2.2.2/vue.min.js"></script&g

  • 对已有的docker容器增加新的端口映射问题(两种方式)

    一般在运行容器时,我们都会通过参数 -p(使用大写的-P参数则会随机选择宿主机的一个端口进行映射)来指定宿主机和容器端口的映射,例如 docker run -it -d --name [container-name] -p 8088:80 [image-name] 这里是将容器内的80端口到宿主机的8088端口 在运行容器时指定映射端口运行后,如果想要添加新的端口映射,可以使用以下两种方式: 方式一:将现有的容器打包成镜像,然后在使用新的镜像运行容器时重新指定要映射的端口 #1.停止现有容器 d

  • Shell脚本批量添加扩展名的两种方法分享

    方法1: 复制代码 代码如下: for file in  `ls`; do mv $file $file.txt; done 方法2: 复制代码 代码如下: find . -type f |xargs -i mv {} {}.txt 还有一些试验不成功的,先记录在此. 1.用rename命令修改后缀名,这个是最简单最省事的办法 复制代码 代码如下: [root@demo test_rename]# ll 总计 20 -rw-r–r– 1 root root 0 09-27 00:57 renam

  • 修改mysql默认字符集的两种方法详细解析

    (1) 最简单的修改方法,就是修改mysql的my.ini文件中的字符集键值,如 default-character-set = utf8    character_set_server = utf8 修改完后,重启mysql的服务,service mysql restart使用 mysql> SHOW VARIABLES LIKE 'character%';查看,发现数据库编码均已改成utf8 复制代码 代码如下: +--------------------------+-----------

  • js实现添加删除表格(两种方法)

    效果图: 代码如下: <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> <style type="text/css"> #box{ margin:0 auto; background:yellow; border:4px double #808080; width:600px; text-alig

  • Django 添加静态文件的两种实现方法(必看篇)

    Django添加静态文件有两种方法: 首先setting.py配置文件中添加静态文件的路径: STATICFILES_DIRS = [ os.path.join(BASE_DIR, "statics"),]  statices为你所建立的存放静态文件的文件夹名 然后进行引用. 1.html 文件中通过 /static/资源名的方式,就可以访问到资源 2.①html 文件头部填写  {% load staticfiles %},②路径填写  {% static 'css/xx.css'

  • docker 添加端口及获取dockerfile的方法

    从docker image中获取 dockerfile docker history --format {{.CreatedBy}} --no-trunc=true $DockerImage |sed "s//bin/sh\ -c\ #(nop)\ //g"|sed "s//bin/sh\ -c/RUN/g" | tac 注:该docker file 不对目录,端口进行映射 同时不执行docker开机启动的脚本及 server 服务 docker 多端口映射 Doc

  • Docker动态给容器Container暴露端口操作

    查看Container的IP地址 docker inspect <container name or id>| grep IPAddress 查看Container的映射的端口 docker port <container name or id> eg. docker port d8dac7399647 docker port hfq-jedi-zxf-eden 用iptables查看容器映射情况 iptables -t nat -nvL iptables -t nat -nvL

随机推荐