我正在使用以下命令创建一个容器
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
有没有人能分享这个解决方案?提前谢谢你
au9on6nz1#
您可以通过运行以下命令检查现有端口
lsof -i tcp:81
和
lsof -i tcp:3307
如有必要,可以使用命令终止该进程
kill -9 [pid number]
在此之后,您可以尝试重新运行该docker命令。
ghhkc1vu2#
似乎某个其他进程已经持有您试图Map到容器的主机端口。您可以考虑使用netstat -aon来确定是否存在持有扩展底座主机上的端口81和3307的现有进程。
netstat -aon
u0sqgete3#
您在docker run命令中指定的端口可能已分配给某个其他进程。请找一下那边正在上演的节目。如果有无关紧要的事,就杀了它。或者,您可以继续使用可用的端口。请找到下面的快照以供参考,
问候
xqkwcwgp4#
出现完全相同错误的另一种情况是IP地址正在使用中。在我的设置中,我的网络设置如下:
docker network create --subnet 172.28.5.0/24 cluster-test-net
我试图启动我的码头集装箱,如下所示:
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并在结果中发现以下行时:
172.28.5.1
ifconfig
br-bb89994f6a73: flags=4099<UP,BROADCAST,MULTICAST> mtu 1500 inet 172.28.5.1 netmask 255.255.255.0 broadcast 172.28.5.255 inet6 fe80::42:a2ff:fecd:81e9 prefixlen 64 scopeid 0x20<link> ether 02:42:a2:cd:81:e9 txqueuelen 0 (Ethernet) RX packets 4394 bytes 4695729 (4.6 MB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 2342 bytes 175071 (175.0 KB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
br-bb89994f6a73: flags=4099<UP,BROADCAST,MULTICAST> mtu 1500
inet 172.28.5.1 netmask 255.255.255.0 broadcast 172.28.5.255
inet6 fe80::42:a2ff:fecd:81e9 prefixlen 64 scopeid 0x20<link>
ether 02:42:a2:cd:81:e9 txqueuelen 0 (Ethernet)
RX packets 4394 bytes 4695729 (4.6 MB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 2342 bytes 175071 (175.0 KB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
因此,我只是通过为我的码头容器选择一个不同的IP地址来修复它:
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
8nuwlpux5#
这意味着另一个容器正在获取该容器的IP。停止所有容器,然后启动您的容器。然后启动您的容器:
docker stop xdocker network connect --ip 172.24.0.4 yournetwork ydocker start ydocker start x
docker stop x
docker network connect --ip 172.24.0.4 yournetwork y
docker start y
docker start x
该顺序将指示冲突的集装箱或者使用容器网络docker inspect network_name检查容器是否有正确的IP地址
docker inspect network_name
5条答案
按热度按时间au9on6nz1#
您可以通过运行以下命令检查现有端口
和
如有必要,可以使用命令终止该进程
在此之后,您可以尝试重新运行该docker命令。
ghhkc1vu2#
似乎某个其他进程已经持有您试图Map到容器的主机端口。您可以考虑使用
netstat -aon
来确定是否存在持有扩展底座主机上的端口81和3307的现有进程。u0sqgete3#
您在docker run命令中指定的端口可能已分配给某个其他进程。请找一下那边正在上演的节目。如果有无关紧要的事,就杀了它。或者,您可以继续使用可用的端口。

请找到下面的快照以供参考,
问候
xqkwcwgp4#
出现完全相同错误的另一种情况是IP地址正在使用中。在我的设置中,我的网络设置如下:
我试图启动我的码头集装箱,如下所示:
我收到错误的原因是docker已经将IP地址
172.28.5.1
分配给主机本身。我注意到,当我在我的主机上运行ifconfig
并在结果中发现以下行时:因此,我只是通过为我的码头容器选择一个不同的IP地址来修复它:
8nuwlpux5#
这意味着另一个容器正在获取该容器的IP。停止所有容器,然后启动您的容器。然后启动您的容器:
该顺序将指示冲突的集装箱
或者使用容器网络
docker inspect network_name
检查容器是否有正确的IP地址