docker - docker 中有关用户指定子网的错误消息
问题描述
我正在尝试使用该--ip
标志为容器分配 IP。但我收到以下消息:
Error response from daemon: user specified IP address is supported only when connecting to networks with user configured subnets.
这条消息是什么意思?如何让容器运行?
网络是使用以下命令创建的:
docker network create my_network_name
容器被调用:
docker run -it --net my_network_name --ip 172.22.0.30 image_name
解决方案
创建网络时,请从您的网络中免费的私有 IP 范围提供一个子网。然后,当您在此网络中创建容器时,从该子网中选择一个地址。
例如,IP 范围 10.11.0.0/16 和容器 IP 10.11.0.10:
$ docker network create my_network_name --subnet=10.11.0.0/16
$ docker run -it --net my_network_name --ip 10.11.0.10 image_name
这是一个实际的运行:
$ docker --version
Docker version 19.03.6, build 369ce74a3c
$ uname -a
Linux 4.15.0-112-generic #113-Ubuntu SMP Thu Jul 9 23:41:39 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux
$ docker network create my_network_name --subnet=10.11.0.0/16
35a9e4e5fb4ff243202fc4f6b687901c3cbfcd8fe34e06290db5d257310417a2
$ docker run --rm -it --net my_network_name --ip 10.11.0.10 ubuntu
root@f0d283bc5023:/#
在另一个窗口上:
$ docker network inspect my_network_name
[
{
"Name": "my_network_name",
"Id": "35a9e4e5fb4ff243202fc4f6b687901c3cbfcd8fe34e06290db5d257310417a2",
"Created": "2020-09-19T11:51:59.985580503-07:00",
"Scope": "local",
"Driver": "bridge",
"EnableIPv6": false,
"IPAM": {
"Driver": "default",
"Options": {},
"Config": [
{
"Subnet": "10.11.0.0/16"
}
]
},
"Internal": false,
"Attachable": false,
"Ingress": false,
"ConfigFrom": {
"Network": ""
},
"ConfigOnly": false,
"Containers": {
"f0d283bc5023fbe8a1c854fd2bb5bdd121be7245013cfac62d9933f95ace7bbf": {
"Name": "sleepy_colden",
"EndpointID": "088fbd64b82e05920fda91b28ebb5b4a14c9fca3ac9fde457c8819663f6049df",
"MacAddress": "02:42:0a:0b:00:0a",
"IPv4Address": "10.11.0.10/16",
"IPv6Address": ""
}
},
"Options": {},
"Labels": {}
}
]
推荐阅读
- json - 使用 jq 重塑 JSON 后存储顶级 JSON 密钥以供使用
- docker - 如何使詹金斯管道在远程服务器上运行 docker 命令
- regex - 正则表达式
- ibm-cloud - 沃森工作室非常慢
- javascript - 使用 JavaScipt 上传 Selenium 隐藏文件
- python - 检查变量是否存在
- javascript - 将数组值设置为对象键
- elasticsearch - ES 查询异常
- matlab - 为什么我的代码不能在 Octave 中工作,但在 Matlab 中工作?
- javascript - 具有不同响应的命令上的 discord.js-commando 参数