我正在使用Windows 7的Docker工具箱,我正在尝试更改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
谢谢。
更改IP地址 Docker 将在其docker0
接口上设置,您必须使用定义CIDR的--bip
选项(例如--bip=10.32.57.1/24
),请参阅"请参阅",请参阅"请参阅"请参阅"自定义docker0桥" docker 用户指南。
Docker Toolbox 使用 boot2docker (在虚拟机中运行),该 tiny Core Linux os。os。
docker 守护程序读取 /var/lib/boot2docker/profile
启动之前(请参阅 boot2docker 的faq中的" local自定义"),其中 EXTRA_ARGS
变量已准备就绪充满您的自定义设置。
只需在EXTRA_ARGS
的值零件中添加您的--bip=...
并重新启动守护程序。
以下命令(在 docker quickstart终端中输入)将停止 docker 守护程序,删除任何现有规则,删除接口,将--bip
添加到/var/lib/boot2docker/profile
中并重新启动守护程序:
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 因此):
for 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