通过修改配置文件为 Docker 容器增加端口映射
编辑工作中经常会遇到需要在现有环境中使用Docker部署各种容器。由于文档不足,无法盲目地重建容器。在这种情况下,如果需要对特定容器增加端口映射,可以通过修改Docker配置文件来实现。这种方式的缺点是需要停止整个Docker服务。接下来详细介绍具体的操作步骤:
关闭 Docker 服务
# 停止docker服务
systemctl stop docker
找到容器的配置文件路径
在 Docker 中,每个容器相关的数据都存储在 /var/lib/docker/containers
目录中,以容器ID为命名的目录进行组织。这些目录包括容器的配置文件、日志以及其他元数据。
通过 docker inspect [容器名称] | grep "Id"
查看容器ID信息
通过拼接容器ID,您可以查看与该容器相关的配置文件。
修改配置文件
在修改容器的端口时,需要注意到 hostconfig.json
和 config.v2.json
这两个文件,分别存储了容器的宿主机配置信息和容器本身的配置信息。
config.v2.json
需要修改此文件中的 ExposedPorts
部分,这部分指定了容器内部开放的端口。ExposedPorts
是一个 JSON 对象,其中的键是容器内部的端口号和协议(例如 "80/tcp"),值通常为空对象({}),因为这部分只是声明端口是开放的,而不涉及到具体的映射细节。
"ExposedPorts": {
"端口号/tcp": {},
"新增端口号/tcp": {}
}
注意在此处添加上自己要映射的端口号
hostconfig.json
需要修改此文件中的 PortBindings
部分用于定义容器端口到宿主机端口的映射关系,PortBindings
是一个 JSON 对象,其中的键是容器内部端口加协议(格式为 "端口号/协议",例如 "80/tcp"),值是一个对象数组,每个对象代表一个宿主机端口绑定,包括宿主机端口号和IP地址。
"PortBindings": {
"端口号/tcp": [
{
"HostIp": "",
"HostPort": "端口号"
}
],
"新增端口号/tcp": [
{
"HostIp": "",
"HostPort": "新增端口号"
}
]
}
注意在此处添加上自己要映射的端口号
启动 Docker 服务
在启动 Docker 服务之前,请务必确保已经正确修改了配置文件的格式,并且新增的端口号没有被其他服务占用。
# 启动docker服务
systemctl start docker
- 0
- 0
-
赞助
支付宝微信 -
分享