第24回 非Linux環境のDocker FreeBSDで実際に動かしてみると……:古賀政純の「攻めのITのためのDocker塾」(5/7 ページ)
非Linux環境におけるDockerの利用が注目されつつあります。今回はIoT時代の主役になるかもしれないBSDの環境で実際にDockerを動かし、その様子からどんなことが分かるのかについて解説します。
FreeBSD Jailの管理コマンドを使って、コンテナのIPアドレスを知る
docker execが使えないという状態でホストOSからDockerコンテナのIPアドレスを知るにはどうすればよいのでしょうか。
FreeBSDのDockerコンテナは、FreeBSD Jailを利用しています。そこで、FreeBSD Jailの管理コマンドを駆使して、DockerコンテナのIPアドレスを知ることができます。再度、Dockerコンテナを2つ起動します。
# docker run -itd --name test01 centos:7.2.1511 /bin/bash # docker run -itd --name test02 c7:newest /bin/bash # docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 80b99e3b2c53 c7:newest "/bin/bash" 3 minutes ago Up 3 minutes test02 62013a6013e6 centos:7.2.1511 "/bin/bash" 3 minutes ago Up 3 minutes test01
ホストOSから、これらのコンテナの状態をFreeBSD Jailの管理コマンドであるjlsコマンドで確認します。
# jls JID IP Address Hostname Path 9 172.17.0.1 /usr/docker/zfs/graph/62013a6013e6 10 172.17.0.2 /usr/docker/zfs/graph/80b99e3b2c53
すると、右側には「docker ps -a」で得られるコンテナIDに対応したZFSファイルシステムのパスが表示され、左側には付与されたIPアドレスが表示されています。これにより、コンテナIDと付与されたIPアドレスの関係が分かります。現時点では、ホストOSのFreeBSD上で「docker exec」が正常に実行できない場合に、ホストOSからコンテナのIPアドレスを知る回避策になりますが、ここではFreeBSDのDockerがFreeBSD Jailを利用しているということを知ってもらいたいと思い、ご紹介しました。
他にも、連載第10回でご紹介したdocker saveでDockerイメージをtarアーカイブに変換し、他のDocker環境にdocker loadで移植できるかどうかも試してみてください。
筆者の環境では、「docker save」によってFreeBSD上のDockerイメージをtarアーカイブに変換し、他のLinuxのDocker環境に移植できましたが、逆に他のDocker環境のDockerイメージをtarアーカイブに変換したものをFreeBSD上にコピーし、FreeBSD上で「docker load」によってDockerイメージとして登録することはできませんでした。
関連記事
- 第23回 非Linux環境のDocker、プレステも採用する“あのOS”で動かす意味
実はLinuxではないOS環境でもDockerは動きます。でもWindowsではありません。今回はプレステにも搭載され、これからのIoT時代に主役になるかもしれない、あのOSでDockerを動かす理由を紹介します。 - 第21回 Dockerで3Dゲームを動かす――構築編
前回はDocker環境で3Dゲームを稼働させるゴールや方法などについてご紹介しました。今回はその環境を構築していく上でのポイントや注意点を解説します。 - 第22回 Dockerで3Dゲームを動かす――稼働編
ここまでDocker環境で3Dゲームを稼働させるための準備や方法などをみてきました。それでは実際に自動車や飛行機、鉄道のシミュレータを稼働させてみます。 - 【古賀政純の「攻めのITのためのDocker塾」】バックナンバー
Copyright © ITmedia, Inc. All Rights Reserved.