gpt4 book ai didi

virtual-machine - 使用 LXC 驱动程序为 docker 容器设置静态 IP

转载 作者:行者123 更新时间:2023-12-01 05:11:08 25 4
gpt4 key购买 nike

我在我的 ubuntu 14.04 笔记本电脑上安装了 docker。我从中央注册表中提取了 docker 注册表镜像。为了将容器的 IP 地址固定为静态值,我首先更改了我的 /etc/defaults/docker并添加 -e lxcDOCKER_OPTS多变的。

然后为了运行我的本地注册表,我使用了以下命令;

docker run \
-i -t -h myreg \
--net="none" \
--lxc-conf="lxc.network.hwaddr=91:21:de:b0:6b:61" \
--lxc-conf="lxc.network.type = veth" \
--lxc-conf="lxc.network.ipv4 = 172.17.0.20/16" \
--lxc-conf="lxc.network.ipv4.gateway = 172.17.42.1" \
--lxc-conf="lxc.network.link = docker0" \
--lxc-conf="lxc.network.name = eth0" \
--lxc-conf="lxc.network.flags = up" \
--name myreg \
-p 5000:5000 \
-d registry \
/bin/bash

然后用了 docker attach myreg访问容器的 shell 。安装 net-tools 包后,我检查了它的 IP 地址,看到它是 172.17.0.20 预期。我试图从我的主机 ping 它并且它正在回复。

问题是,当我用 docker inspect myreg 检查这个容器的配置时, 输出的 NetworkSettings 部分如下
"NetworkSettings": {
"Bridge": "docker0",
"Gateway": "172.17.42.1",
"IPAddress": "172.17.0.8",
"IPPrefixLen": 16,
"PortMapping": null,
"Ports": {
"5000/tcp": [
{
"HostIp": "0.0.0.0",
"HostPort": "5000"
}
]
}

它显示 172.17.0.8 作为它的 IP 地址。如果我不是使用 lxc 驱动程序,它是应该分配的值。当我使用 docker push 时,这会成为一个问题命令将标记的图像推送到此本地注册表。因为, docker正在使用这个错误的IP来推送图像,并抛出如下错误日志
de7e1cfc] +job push(127.0.0.1:5000/mongo)
2014/07/18 17:10:19 Can't forward traffic to backend tcp/172.17.0.8:5000: dial tcp 172.17.0.8:5000: no route to host
2014/07/18 17:10:22 Can't forward traffic to backend tcp/172.17.0.8:5000: dial tcp 172.17.0.8:5000: no route to host

这里有什么问题?或者我在做smt。错误的?

最佳答案

你在运行什么版本的 Docker? Docker 1.0 不再使用 LXC,他们已将其替换为自己的 libcontainer。关注此博客时,LXC 命令对我不起作用 - http://goldmann.pl/blog/2014/01/21/connecting-docker-containers-on-multiple-hosts/#_set_up

如果您降级到 0.7 并遵循 lxc 流程,它将起作用。

关于virtual-machine - 使用 LXC 驱动程序为 docker 容器设置静态 IP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24828668/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com