如何为Docker容器分配公共IP地址

vuktfyat  于 2022-11-02  发布在  Docker
关注(0)|答案(2)|浏览(219)

我已经阅读了其他问题,如thisthis,但没有得到我的答案。
我跑这:

docker run -dp 192.168.43.80:80:80 nginx:beta-1

但我得到了这个错误:

docker: Error response from daemon: driver failed programming external connectivity on endpoint hardcore_babbage (aa327aefe662c502bbc79d01660c166198f9a08ad588cd946a794e02b0b07dc4): Error starting userland proxy: listen tcp4 192.168.43.86:80: bind: cannot assign requested address.

我搜索了这个错误,但一无所获。
ip a

2: enp0s3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether 08:00:27:2d:eb:7f brd ff:ff:ff:ff:ff:ff
    inet 192.168.43.85/24 brd 192.168.43.255 scope global dynamic enp0s3
       valid_lft 3060sec preferred_lft 3060sec

我将Oracle VirtualBox与三个Linux虚拟机一起使用,它们都具有IP 192.168.43.0/24
我想运行一个可以通过另一个IP(如192.168.43.80)从虚拟机(enp0s3的IP是192.168.43.85)访问的容器。都使用docker run命令和docker-compose
在这种情况下我该怎么办?

kgsdhlau

kgsdhlau1#

我这样做是为了解决:
1.我关闭了虚拟机并启用了第二个网络接口。
1.已运行VM并运行ip a以确认编号1并查看新名称
1.已运行ifconfig enp0s8 192.168.43.80 netmask 255.255.255.255 up
1.已运行码头集装箱docker run -dp192.168.43.80:80:80 nginx:beta-1

dpiehjr4

dpiehjr42#

由于您尚未添加任何其他IP地址,因此应执行以下操作:
1.关闭虚拟机。启用新的网络接口。
1.再次运行VM并键入ip a以查看新的网络接口名称
1.运行ifconfig NETWORK_INTERFACE 192.168.43.80 netmask 255.255.255.0 up

  1. Ping 192.168.43.80,您应该会得到结果。
    1.现在通过docker run -dp192.168.43.80:80:80 nginx运行您的docker容器
    1.当您在互联网浏览器上键入192.168.43.80时,您应该会看到nginx默认网页或任何其他已配置的页面

相关问题