Docker容器映射端口修改--通过修改容器配置文件方式

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

环境准备

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

通过修改容器配置文件方式

$ 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是可以看到容器端口映射信息的。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值