docker怎么更改映射端口

王林
Lepaskan: 2020-03-24 11:18:52
asal
4054 orang telah melayarinya

docker怎么更改映射端口

1、编辑容器的配置文件进行更改端口;

docker run 运行启动时  -p 可以指定容器启动映射端口 (0.0.0.0:18080 8080)
Salin selepas log masuk

可以编辑配置文件 进行修改;(需要重启docker 服务 不止是是容器 才能生效。只能重启容器还是会覆盖的)

2、查找需要更改端口的容器

docker ps
Salin selepas log masuk

7d635a5c9ea72e130e4d7a8b762e718.png

3、根据 CONTAINER ID 查找 docker 配置文件; (容器文件配置默认 /var/lib/docker/containers)

因为我更改了 docker 默认存储位置。(docker info 可以查看docker信息)

4、更改 docker 默认环境变量 默认配置 是 /var/lib/docker

在 docker 启动文件添加默认环境系统配置 " /etc/default/docker ":

添加 Environment File 配置:

# vi /usr/lib/systemd/system/docker.service
Salin selepas log masuk

在 [Serivce] 下添加

EnvironmentFile=-/etc/default/docker #添加配置文件
Salin selepas log masuk

在 [Install] 下添加

EnvironmentFile=-/etc/default/docker
Salin selepas log masuk

(推荐教程:docker教程

5、停止容器

docker stop [ID/name]
Salin selepas log masuk

6、停止 docker 服务

systemctl stop docker
Salin selepas log masuk

7、编辑更改容器的配置文件hostconfig.json

config.v2.json 是容器启动才会看到映射地址的、所以不必操作。

/data/docker/containers/0731470143a94579b837b295f4c03a5f283e2bc1b0be746e7da451b9eb817120/hostconfig.json
容器配置命名就是 以 CONTAINER ID 容器ID开头的
Salin selepas log masuk

8、查看编辑 hostconfig.json 文件;

jq . ./hostconfig.json
# jq 查看json 格式文件
# 更改 HostPort 就是映射的宿主机端口。
Salin selepas log masuk

ccbcafdd0af9e4255b73de85c1bdd9f.png

9、启动 docker 服务 启动容器

docker start [ID/NAME]
systemctl start docker 
docker ps
Salin selepas log masuk

10、容器启动、iptables 这个会自动加入的;直接 server iptables save 保存就好了。或者不放心可以直接添加端口 :

宿主机添加端口:
iptables -A INPUT -p tcp -m state --state NEW -m tcp --dport 58080 -j ACCEPT

宿主机 nat 映射:
iptables -A DOCKER ! -i docker0 -p tcp -m tcp --dport 58080 -j DNAT --to-destination 172.16.4.3:8080
Salin selepas log masuk

注:

docker 在操作或者添加容器时候,首先 service iptables save  ,然后再编辑添加重启。

添加容器默认会添加映射到防火墙的,但是重启iptables 就会失效、所以要先保存再重启。

Atas ialah kandungan terperinci docker怎么更改映射端口. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan