Docker:来自后台进程的错误响应:地址已在使用中

m2xkgtsf  于 2022-10-23  发布在  Docker
关注(0)|答案(5)|浏览(267)

我正在使用以下命令创建一个容器

  1. docker run -it -p 81:80 -p 3307:3306 --net mynet123 --ip 172.18.0.22 -v /opt/lampp/htdocs:/var/www/html lamp-setia bash

有没有人能分享这个解决方案?
提前谢谢你

au9on6nz

au9on6nz1#

您可以通过运行以下命令检查现有端口

  1. lsof -i tcp:81

  1. lsof -i tcp:3307

如有必要,可以使用命令终止该进程

  1. kill -9 [pid number]

在此之后,您可以尝试重新运行该docker命令。

ghhkc1vu

ghhkc1vu2#

似乎某个其他进程已经持有您试图Map到容器的主机端口。您可以考虑使用netstat -aon来确定是否存在持有扩展底座主机上的端口813307的现有进程。

u0sqgete

u0sqgete3#

您在docker run命令中指定的端口可能已分配给某个其他进程。请找一下那边正在上演的节目。如果有无关紧要的事,就杀了它。或者,您可以继续使用可用的端口。
请找到下面的快照以供参考,

问候

xqkwcwgp

xqkwcwgp4#

出现完全相同错误的另一种情况是IP地址正在使用中。在我的设置中,我的网络设置如下:

  1. docker network create --subnet 172.28.5.0/24 cluster-test-net

我试图启动我的码头集装箱,如下所示:

  1. docker run -d --name wildfly1 --ip 172.28.5.1 -h wildfly1 -p 8080:8080 -p 9990:9990 --network=cluster-test-net wildfly-cluster-image

我收到错误的原因是docker已经将IP地址172.28.5.1分配给主机本身。我注意到,当我在我的主机上运行ifconfig并在结果中发现以下行时:

  1. br-bb89994f6a73: flags=4099<UP,BROADCAST,MULTICAST> mtu 1500
  2. inet 172.28.5.1 netmask 255.255.255.0 broadcast 172.28.5.255
  3. inet6 fe80::42:a2ff:fecd:81e9 prefixlen 64 scopeid 0x20<link>
  4. ether 02:42:a2:cd:81:e9 txqueuelen 0 (Ethernet)
  5. RX packets 4394 bytes 4695729 (4.6 MB)
  6. RX errors 0 dropped 0 overruns 0 frame 0
  7. TX packets 2342 bytes 175071 (175.0 KB)
  8. TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

因此,我只是通过为我的码头容器选择一个不同的IP地址来修复它:

  1. docker run -d --name wildfly1 --ip 172.28.5.10 -h wildfly1 -p 8080:8080 -p 9990:9990 --network=cluster-test-net wildfly-cluster-image
展开查看全部
8nuwlpux

8nuwlpux5#

这意味着另一个容器正在获取该容器的IP。停止所有容器,然后启动您的容器。然后启动您的容器:

  1. docker stop x
  2. docker network connect --ip 172.24.0.4 yournetwork y
  3. docker start y
  4. docker start x

该顺序将指示冲突的集装箱
或者使用容器网络docker inspect network_name检查容器是否有正确的IP地址

相关问题