首页 > 其他分享 >docker为已启动的容器添加端口映射

docker为已启动的容器添加端口映射

时间:2023-08-28 17:24:50浏览次数:35  
标签:容器 tcp json 3306 docker 端口映射

针对已运行的容器添加端口映射

1、查看容器是否映射端口

docker port [容器id 或 容器名]
1

有端口映射:

在这里插入图片描述

无端口映射:

在这里插入图片描述

2、查看容器完整Id

docker inspect [容器id] | grep Id
// 得到以下结果
//    "Id": "fcae55f5180a79487662de426863565c7df05ed9b87854093b62776734928d25",
123

3、进入docker容器目录查看

cd  /var/lib/docker/containers/var/lib/docker/containers
1

在这里插入图片描述

4、根据得到的容器完整id进入目录

cd fcae55f5180a79487662de426863565c7df05ed9b87854093b62776734928d25
1

目录中分别有两个文件:hostconfig.jsonconfig.v2.json,直接查看文件内容比较混乱可以下载到本机,使用json工具查看。

5、修改配置文件

hostconfig.json

// 当前容器 3306 端口绑定到本机 3306 端口
"PortBindings": {
    "3306/tcp": [
        {
            "HostIp": "",
            "HostPort": "3306"
        }
    ]
},
123456789

config.v2.json

// 这个文件需要查看两个位置
	// 暴露 3306、33060 端口
"ExposedPorts": {
    "3306/tcp": {
    },
    "33060/tcp": {
    }
},

// 和 
	// 这一段应该是表示哪些ip可以访问之类的
	// 如下也是我从一个 docker run -d -p80:80 ... 带有端口映射的容器的 config.v2.json 文件中复制出来修改后的
"Ports": {
    "3306/tcp": [
        {
            "HostIp": "0.0.0.0",
            "HostPort": "3306"
        },
        {
            "HostIp": "::",
            "HostPort": "3306"
        }
    ],
    "33060/tcp": null
},
12345678910111213141516171819202122232425

6、替换配置文件

  1. 停止容器

    docker stop [容器Id 或 容器名]
    1
    
  2. 将修改过后的配置文件复制到指定目录下 /var/lib/docker/containers/完整容器Id,(怕修改错误可以先备份原有的文件)

  3. 重启docker

    systemctl restart docker
    1
    
  4. 重启后可以先查看 hostconfig.jsonconfig.v2.json 两个配置文件是否是修改过后的,如果不是可以尝试多上传几次(我就是这样的)

  5. 最后再查看端口号是否有映射

    docker port [容器id 或 容器名称]
    1
    

标签:容器,tcp,json,3306,docker,端口映射
From: https://www.cnblogs.com/guowenrui/p/17662880.html

相关文章

  • 修改Docker镜像、容器、网络和卷等数据的存储位置|修改wsl在windows下的数据目录
    起因: 我发现这个C盘快要爆炸了C:\Users\Administrator\AppData\Local\Docker\wsl\data\ext4.vhdx(此目录是默认指向,都快100G了)解决步骤:wsl--shutdownwsl--exportdocker-desktop-dataE:\Docker\docker-desktop-data.tarwsl--unregisterdocker-deskto......
  • docker常用操作命令
    Docker是一种开源的容器化平台,它提供了一种轻量级的容器化解决方案,可以将应用程序及其依赖项打包成一个可移植的容器。以下是一些常用的Docker操作命令和手册:镜像操作:dockerimages:列出本地的镜像列表。dockerpull<image_name>:从Docker仓库中拉取指定的镜像。dockerpus......
  • docker和k8s
    dockerDocker是一种开源的容器化平台,它的主要目标是简化应用程序的部署和管理。通过使用Docker,开发人员可以将应用程序及其依赖项打包到一个称为容器的独立单元中,以便在不同的环境中进行部署和运行。Docker的主要用途包括:应用程序的隔离性:Docker容器提供了一种轻量级的虚拟......
  • docker常用命令
    1.远程操控dockerdocker-Htcp://ip:portcommand,如docker-Htcp://localhost:2375images2.登录docker仓库dockerlogin repository_host,然后根据提示输入username,password3.登出docker仓库dockerlogout4.给镜像重新打标签dockertagimage_id R......
  • Docker 搭建本地 https 环境
    目录1.生成自签名的SSL证书和私钥2.编辑Nginx的Dockerfile文件3.编辑YAML文件4.准备nginx主配置文件5.运行以下命令启动容器6.添加网页主页7.测试环境:安装Docker安装docker-compose1.生成自签名的SSL证书和私钥首先,生成自签名的SSL证书和私钥。可以使用......
  • docker 启动redis 启动配置文件可以去网上查找一篇
    dockerrun--privileged=true-d--nameredis-p6379:6379-v/Users/zs/docker/redis/conf/redis.conf:/etc/redis/redis.conf-v/Users/zs/docker/redis/data:/dataredisredis-server/etc/redis/redis.conf   configurl参考如下 https://blog.csdn.net/xuyan......
  • Docker搭建本地私有仓库
    一、拉取Registry镜像dockerpullregistry二、运行registry容器dockerrun-d-p5000:5000-v/langren/myreqistry:/tmp/reqistry--privileged=true--namemyreqistryregistry三、发送get请求验证镜像库是否正常运行curl-XGEThttp://10.10.10.12:5000/v2/_catalog四、配置......
  • docker命令行
     dockerimages 查看所有镜像dockerrmicycbg0s16r/simulationbbsweb:v1.7.1  删除镜像{REPOSITORY :tag}systemctlstatusdocker   查看docker运行状态(显示绿色代表正常启动) dockerps:查看当前正在运行的容器。dockerstart<容器名或ID>:启动一个已经停止......
  • EMQX服务docker-compose启动
    问题描述  按照一般的yml文件启动后,发现EMQX却一直在重启,日志里显示“没有权限创建文件夹或写数据”、“文件找不到”等错误; 正确安装步骤  1、创建临时EMQX容器dockerrun-d--nameemqx-p1883:1883-p8081:8081-p8083:8083-p8084:8084-p8883:8883-p18083:......
  • docker部署nginx
    ......