docker容器公开静态ip

docker容器公开静态ip,docker,docker-container,docker-networking,Docker,Docker Container,Docker Networking,我正在尝试将所需的IP和端口绑定到docker容器,并将其暴露到网络中,以便可以通过网络中的其他机器访问它,而不管它在哪个机器上运行。我对docker很陌生。我能够实现与本地主机的端口绑定,但这样它就变得依赖于机器,即我们需要通过该机器的IP访问容器。我的测试在两个不同的网络中运行,所以我想让它独立于机器。因此,我试图做的是:将容器绑定到任意所需的IP(不确定这是否可以实现,因为IP在网络中应该始终是唯一的)。请让我知道这是否可以实现,如果可以,如何实现。 提前非常感谢。您可以尝试以下两种解决方

我正在尝试将所需的IP和端口绑定到docker容器,并将其暴露到网络中,以便可以通过网络中的其他机器访问它,而不管它在哪个机器上运行。我对docker很陌生。我能够实现与本地主机的端口绑定,但这样它就变得依赖于机器,即我们需要通过该机器的IP访问容器。我的测试在两个不同的网络中运行,所以我想让它独立于机器。因此,我试图做的是:将容器绑定到任意所需的IP(不确定这是否可以实现,因为IP在网络中应该始终是唯一的)。请让我知道这是否可以实现,如果可以,如何实现。
提前非常感谢。

您可以尝试以下两种解决方法

  • 创建网络并在该网络上运行容器

    docker网络创建--子网=193.168.3.0/24网络名称

    docker run--网络名称-p 193.168.3.18:15672图像

  • 创建一个yml文件“docker compose.yml”,并在其中添加以下内容

  • 保存文件并运行以下命令

    docker-compose -f docker-compose.yml up -d
    

    如果您想要swarm设施,可以使用版本3。运行上述命令后,将创建名为“dir-name-of-yml_containername_1”的容器。在这里,您正在使用子网“193.168.3.0/24”创建网络,并使用IP“193.168.3.18”创建容器。

    要将容器连接到另一个容器,您可以使用docker网络。这是一个详细的答案,将指导您设置网络和连接容器。是的,如果你使用docker网络,它是独立于机器的。

    你的
    docker run
    语句是什么样子的?docker run-p::实际上我想通过Spotiy docker ciient实现这一点。但是使用命令行我也做不到。看起来需要对网络进行一些操作。docker run-d-p 192.168.99.100::15672 761ae3adcd1a 5497F9102C85B01B392478552A5821C955DA84073D724330BF89BDBA875858 docker:守护进程的错误响应:驱动程序未能在端点hardcore_jang(21296461920CEA98E0808407A37555687F1BE53591B7231B918071AC7D97)上编程外部连接:启动userland代理时出错:listen tcp 192.168.99.100:32777:bind:无法分配请求的地址。@Prabhat编辑您的问题,而不是用说明填充注释部分。非常感谢。。我试过选择1。docker network create--subnet=193.168.3.0/24 rabbit_network 90D730BC864A3871FC0353D6EAF6C37AC738B6B1A8174E677CDB037B3A21F8862 docker run--net rabbit_network-p 193.168.3.18:15672 rabbitmq st docker:无效主机端口:193.168.3.18。请参阅“docker run--help”。然后我尝试了以下方法:docker run--net rabbit_network-p 193.168.3.18::15672 rabbitmq st docker:daemon的错误响应:驱动程序未能在端点goofy_shannon上编程外部连接(242D4783980FDC7DD0663047C56DE710D4009D4C30964CB683987E0E6945D):启动userland代理时出错:侦听tcp 193.168.3.18:32777:bind:无法分配请求的地址。等待容器时出错[0002]:上下文已取消ID是否尝试解决方案2?在尝试解决方案2之前,您需要删除在解决方案1中创建的网络<代码>docker网络删除rabbit_网络
    docker-compose -f docker-compose.yml up -d