docker 容器更改映射ip 0.0.0.0 改成127.0.0.1
时间: 2023-11-25 11:07:59 浏览: 356
要将Docker容器的端口映射从0.0.0.0更改为127.0.0.1,你可以按照以下步骤进行操作:
1. 使用 `docker ps` 命令查看正在运行的容器列表,并找到你想要更改映射的容器的ID或名称。
2. 停止该容器,使用命令 `docker stop <容器ID或名称>`,例如 `docker stop my_container`。
3. 使用 `docker inspect <容器ID或名称>` 命令获取容器的详细信息。在输出中找到 `"PortBindings"` 部分,其中包含了容器端口映射的配置。
4. 找到你想要更改的端口映射,并将其修改为 `"HostIp": "127.0.0.1"`。
5. 启动容器,使用命令 `docker start <容器ID或名称>`,例如 `docker start my_container`。
这样设置后,容器的端口将仅通过本地回环地址127.0.0.1进行映射,而不再对外部网络可见。请注意,在更改容器的端口映射之前,请确保了解并理解安全风险,并确保只有可信的本地用户可以访问该端口。
相关问题
root@MTHRC0319N:/# docker network ls NETWORK ID NAME DRIVER SCOPE cb0f49845235 bridge bridge local bcedd84cf9c1 host host local 4152b7fcf112 none null local root@MTHRC0319N:/# sudo lsof -i -P -n | grep LISTEN wslconnec 345 rouo 6u IPv4 131357 0t0 TCP 127.0.0.1:6010 (LISTEN) root@MTHRC0319N:/# sudo docker run -it -m 8g -p 8080:8080 liferay/portal:7.4.3.75-ga75 docker: Error response from daemon: Ports are not available: exposing port TCP 0.0.0.0:8080 -> 0.0.0.0:0: listen tcp 0.0.0.0:8080: bind: An attempt was made to access a socket in a way forbidden by its access permissions. ERRO[0000] error waiting for container:
从你提供的信息来看,似乎是端口被占用导致的问题。在你运行 Docker 容器时,指定了将容器的 8080 端口映射到本地的 8080 端口。但是,操作系统可能已经在使用该端口,因此 Docker 无法绑定该端口。你可以使用以下命令检查端口占用情况:
```
sudo lsof -i :8080
```
如果已经有进程在使用该端口,你可以通过停止该进程或更改 Docker 映射端口来解决问题。例如,你可以将容器端口映射到本地的另一个可用端口,如 8081:
```
sudo docker run -it -m 8g -p 8081:8080 liferay/portal:7.4.3.75-ga75
```
docker inspect 如何更改NetworkSettings.Ports.HostIp 对应ip
要使用 `docker inspect` 命令更改容器的 `NetworkSettings.Ports.HostIp` 对应的 IP 地址,可以按照以下步骤进行操作:
1. 使用 `docker ps` 命令查找正在运行的容器的 ID 或名称。
2. 运行以下命令来获取容器的详细信息,并将输出保存到一个变量中:
```
CONTAINER_INFO=$(docker inspect <容器ID或名称>)
```
3. 使用编辑器(如 `vi` 或 `nano`)打开保存有容器信息的变量:
```
vi <变量名>
```
4. 在打开的文件中,找到 `NetworkSettings` 部分,然后在其中找到 `Ports` 部分。
5. 在 `Ports` 部分找到你想要更改的端口映射,例如 `"8000/tcp": [{"HostIp": "0.0.0.0", "HostPort": "8000"}]`。
6. 将 `"HostIp"` 的值从 `"0.0.0.0"` 更改为你想要的 IP 地址,例如 `"127.0.0.1"`。
7. 保存文件并关闭编辑器。
8. 运行以下命令,将更新后的容器信息加载到 Docker 中:
```
echo "$CONTAINER_INFO" | docker update --stdin <容器ID或名称>
```
这样设置后,容器的端口映射的 `HostIp` 将被更新为你指定的 IP 地址。请确保在更改容器的端口映射之前了解并理解安全风险,并确保只有可信的 IP 地址可以访问该端口。
阅读全文