タイトルどおりですが、少し新しい使い方を覚えたので忘れないようメモ
DockerでIP指定
DockerでIP指定をするには、docker run実行時に--ip=[IPアドレス]
を指定する
$ docker run --privileged -d -it --ip=172.18.0.2 --hostname [CONTAINER] --name [CONTAINER] debian:latest /sbin/init
しかしこれだけでは、
docker: Error response from daemon: User specified IP address is supported on user defined networks only.
と出て、自分で作成したネットワーク以外でIPは使えませんと怒られる
Dockerでブリッジ作成
Dockerでブリッジ作成は、docker network create
コマンドを使用
まずは現在のネットワークを確認
$ docker network ls
NETWORK ID NAME DRIVER SCOPE
75bc40d1ca70 bridge bridge local
56534f2dce38 host host local
a00e9c324b5b none null local
ブリッジを作る
$ docker network create --subnet=172.18.0.0/16 br0
追加されたか確認
$ docker network ls
NETWORK ID NAME DRIVER SCOPE
cd132cd1e1b3 br0 bridge local
75bc40d1ca70 bridge bridge local
56534f2dce38 host host local
a00e9c324b5b none null local
$ docker network inspect br0
[
{
"Name": "br0",
"Id": "cd132cd1e1b334ccf3767fe914a3f65068181e2a4d6fb04d8ddcf64ef26a1f60",
"Scope": "local",
"Driver": "bridge",
"EnableIPv6": false,
"IPAM": {
"Driver": "default",
"Options": {},
"Config": [
{
"Subnet": "172.18.0.0/16",
"Gateway": "172.18.0.1"
}
]
},
"Internal": false,
"Containers": {
"46dccdbcc1cfc77f26dea1c2b0f7041eabef50233c864e21dd79668f588d23c3": {
"Name": "hoge",
"EndpointID": "0a830e10cc750c3ef4215a70673424dc43e6ddafa6c8a563d6cdcacf7d7e39e1",
"MacAddress": "00:00:00:00:00:00",
"IPv4Address": "172.18.0.100/16",
"IPv6Address": ""
}
},
"Options": {},
"Labels": {}
}
]
作成したブリッジを使うには、--net=[ブリッジ名]
を使う
$ docker run --privileged -d -it --net=br0 --ip=172.18.0.2 --hostname [CONTAINER] --name [CONTAINER] debian:latest /sbin/init"