VirtualBoxドライバーを使用してDockerインスタンスを作成できますが、URLを指定する方法がわかりません。
コマンドの作成:
docker-machine create --driver virtualbox myBox
docker-machine ls:
NAME ACTIVE DRIVER STATE URL SWARM
myBox * virtualbox Running tcp://192.168.99.100:2376
URLを特定のURLにしたい。 Dockerインスタンスに特定のURL(例:192.168.99.113)を使用させるにはどうすればよいですか?
詳細:DockerToolboxを使用したMac10.10.5
--virtualbox-hostonly-cidr
コマンドを使用して、DockerマシンのIP範囲を設定してみました。 1つのIPアドレス( "192.168.99.113/32")の範囲を指定しましたが、作成されたマシンのIPは192.168.99.100であり、指定した範囲外です。
特定のIPアドレスでDockerマシンを設定することも可能ですか?
しばらく前に同じ問題が発生し、DockerマシンのデフォルトのDocker IPを変更しようとしましたが、その方法は2つしか見つかりませんでした。
Docker machineのcreateコマンドを呼び出して、フラグ付きのDockerインスタンスを作成できます。
--virtualbox-hostonly-cidr "192.168.99.1/24"
このフラグは、Dockerインスタンスに設定できるアドレスの範囲を設定します。保証はありません、あなたはあなたが望むアドレスを取得します
仮想マシンのネットワーク設定を変更して、NATとポート転送を残し、DockerインスタンスをホストOSにインストールされているように実行することができます。
もちろん、最初のアプローチは標準的なアプローチであり、好ましいようです。しかし、場合によっては、2番目も役立つ可能性があります。
更新:Dockerマシンの静的IPを指定するためのオープン 機能要求 があります。そのため、残念ながら、現時点ではそれを行うことはできません。 --virtualbox-hostonly-cidr
プロパティのみですが、機能させるには29未満のCIDRプレフィックスを指定する必要があります(Winバージョンでテスト済み)。または、 このコメント を見てください。ここでは、次のようにVirtualBoxを構成してOSXでそれを行う方法を示しています。
$ VBoxManage dhcpserver modify --ifname vboxnet0 --disable
$ VBoxManage dhcpserver modify --ifname vboxnet0 --ip 192.168.59.3 --netmask 255.255.255.0 --lowerip 192.168.59.103 --upperip 192.168.59.203
$ VBoxManage dhcpserver modify --ifname vboxnet0 --enable
$ docker-machine create --driver "virtualbox" --virtualbox-cpu-count "-1" --virtualbox-disk-size "30000" --virtualbox-memory "2560" --virtualbox-hostonly-cidr "192.168.59.3/24" dev
issue 1709 の解決を待つ間、私は次のスクリプトを使用します(Windowsのもの、Macに適合させるため)。
(出典: imranraja85 および micheletedeschi の コメント )
dmvbf.bat:
@echo off
setlocal enabledelayedexpansion
set machine=%1
if "%machine%" == "" (
echo dmvbf expects a machine name
exit /b 1
)
set ipx=%2
if "%ipx%" == "" (
echo dmvbf x missing ^(for 192.168.x.y^)
exit /b 2
)
set ipy=%3
if "%ipy%" == "" (
echo dmvbf y missing ^(for 192.168.x.y^)
exit /b 3
)
echo kill $(more /var/run/udhcpc.eth1.pid) | docker-machine ssh %machine% Sudo tee /var/lib/boot2docker/bootsync.sh >NUL
echo ifconfig eth1 192.168.%ipx%.%ipy% netmask 255.255.255.0 broadcast 192.168.%ipx%.255 up | docker-machine ssh %machine% Sudo tee -a /var/lib/boot2docker/bootsync.sh >NUL
docker-machine ssh %machine% "Sudo cat /var/run/udhcpc.eth1.pid | xargs Sudo kill"
docker-machine ssh %machine% "Sudo ifconfig eth1 192.168.%ipx%.%ipy% netmask 255.255.255.0 broadcast 192.168.%ipx%.255 up"
Vmを起動します(docker-machine start <machine-name>
)、 その後:
dmvbf <machine-name> 99 101
私はそれを一度だけします。
次のdocker-machine start <machine-name>
、IPは192.168.99.101になります。
Docker/machineでの議論に基づいて 機能要求スレッド 私たちは 次のスクリプト を書きました:
Usage: docker-machine-ipconfig <command> args...
Commands:
ls List running docker-machines' ip addresses
static <machine> [ip-address] Configure <machine> to use a static IP address
(default is current address)
dhcp <machine> Configure <machine> to use DHCP client to gather IP address
hosts Update /etc/hosts file