我现在正在尝试运行docker容器,并希望为该容器设置ip static。到目前为止我做了什么:
""
要描述IPAddress未设置,请在下面找到docker inspect的详细信息:
"NetworkSettings": { "Bridge": "", "SandboxID": "cc37c6777a8f65268ab088bc6587f463aee7c7878d1fa6045229e4c6ca9b8055", "HairpinMode": false, "LinkLocalIPv6Address": "", "LinkLocalIPv6PrefixLen": 0, "Ports": { "3306/tcp": [ { "HostIp": "0.0.0.0", "HostPort": "3306" } ] }, "SandboxKey": "/var/run/docker/netns/cc37c6777a8f", "SecondaryIPAddresses": null, "SecondaryIPv6Addresses": null, "EndpointID": "", "Gateway": "", "GlobalIPv6Address": "", "GlobalIPv6PrefixLen": 0, "IPAddress": "", //HERE IPAddress that i want to set "IPPrefixLen": 0, "IPv6Gateway": "", "MacAddress": "", "Networks": { "my-netto": { "IPAMConfig": { "IPv4Address": "172.20.0.3" }, "Links": null, "Aliases": [ "5b909fdca063" ], "NetworkID": "6697e2deabb509d0f4a207674909d19c552bb8b77d1c62bdc94b6979b1844f10", "EndpointID": "fd902fcf7351a777b90c7eed4c27a7255fa84aa9f705db84db226dd42c554faf", "Gateway": "172.20.0.1", "IPAddress": "172.20.0.3", "IPPrefixLen": 16, "IPv6Gateway": "", "GlobalIPv6Address": "", "GlobalIPv6PrefixLen": 0, "MacAddress": "02:42:ac:14:00:03", "DriverOpts": null } } } }
NetworkSettings部分中设置IPAddress的任何命令?
任何帮助都会受到赞赏。
提前致谢。
答案 0 :(得分:0)
首先必须使用此命令创建网络
docker network create --subnet=172.28.0.0/16 --ip-range=172.28.5.0/24 --gateway=172.28.5.254 name-of-network
使用此命令启动容器:
docker run -it --name $container_name -d -h "$host_name" -p $host_port:8080 --ip="172.20.5.2" --mac-address="12:34:56:78:9a:bd" --network="name-of-network" $image-name
只需更改--ip
和--mac-address
希望这会有所帮助。
谢谢!
答案 1 :(得分:0)
由于容器中不允许编辑IPAddress,因此我找到了使用--link的方法,它就像魅力一样。
在我的情况下,我想部署一个mysql容器并部署另一个Node.js应用程序。在几篇文章之后,我发现这个docker mysql documentation正在准备一些案例,如果你想使用mysql作为与另一个应用程序的连接。
因此,当我运行docker应用程序时,我在运行命令中添加--link mysql-docker-name:mysql
,在数据库配置中将mysql
作为主机。
希望这会帮助那些遇到同样问题的人。