[英]How to change ip address of docker0 bridge interface on Docker Toolbox
我正在Windows 7上使用Docker Toolbox,试图更改docker0接口的ip地址,但是很难找到适用于Windows 7的确切解决方案。有人可以帮助我找到解决方案。
Client:
Version: 1.12.5
API version: 1.24
Go version: go1.6.4
Git commit: 7392c3b
Built: Fri Dec 16 06:14:34 2016
OS/Arch: linux/amd64
Server:
Version: 1.12.5
API version: 1.24
Go version: go1.6.4
Git commit: 7392c3b
Built: Fri Dec 16 06:14:34 2016
OS/Arch: linux/amd64
谢谢。
要更改Docker将在其docker0
接口上设置的IP地址,您必须使用--bip
选项来定义CIDR(例如--bip=10.32.57.1/24
),请参阅Docker用户中的“ 自定义docker0网桥 ”指导 。
Docker Toolbox使用基于Tiny Core Linux OS的Boot2Docker (在虚拟机中运行)。
Docker守护程序在开始之前(请参阅Boot2Docker的FAQ中的“ 本地自定义 ” )读取/var/lib/boot2docker/profile
,其中EXTRA_ARGS
变量已准备好填充您的自定义设置。
只需在EXTRA_ARGS
的value部分中添加--bip=...
并重新启动守护程序即可。
以下命令(用于键入Docker Quickstart Terminal )将停止Docker守护程序,删除任何现有规则,删除接口,在/var/lib/boot2docker/profile
添加--bip
选项,然后重新启动守护程序:
docker-machine ssh default "\
sudo /etc/init.d/docker stop ; \
sudo iptables -t nat -F POSTROUTING ; \
sudo ip link del docker0 ; \
sudo sed -i \"/^EXTRA_ARGS='\\$/a --bip=10.32.57.1/24\" /var/lib/boot2docker/profile ; \
sudo /etc/init.d/docker start \
"
( /var/lib/boot2docker
内容在Boot2Docker VM重新启动之间保持不变,因此只需运行一次此命令就足够了)
您可以通过以下方式进行检查:
docker-machine ssh default "ip a show dev docker0"
如果有人需要在Debian上进行相同的操作(因此不需要Boot2Docker ):
对于Sysvinit :
cat >> /etc/default/docker <<EOT
# Change Docker network bridge:
DOCKER_OPTS="--bip=10.32.57.1/24" # "3257" = "dckr" on a phone keyboard
EOT
对于systemd :
cat > /etc/systemd/system/docker.service <<'EOT'
[Service]
EnvironmentFile=-/etc/sysconfig/docker
EnvironmentFile=-/etc/sysconfig/docker-storage
EnvironmentFile=-/etc/sysconfig/docker-network
ExecStart=
ExecStart=/usr/bin/docker daemon -H fd:// $OPTIONS \
$DOCKER_STORAGE_OPTIONS \
$DOCKER_NETWORK_OPTIONS \
$BLOCK_REGISTRY \
$INSECURE_REGISTRY
EOT
mkdir /etc/sysconfig
cat > /etc/sysconfig/docker <<EOT
OPTIONS="--bip=10.32.57.1/24"
EOT
systemctl daemon-reload
然后(对于Sysvinit和systemd ):
service docker stop
iptables -t nat -F POSTROUTING
ip link del docker0
service docker start
iptables -t nat -L -n # Check if POSTROUTING table is OK
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.