2014-01-26

Dockerを使ってみる(2)-操作ひと通り

前回のエントリでDebian GNU Linux/jessieのDockerコンテナが出来上がってるので、それをいじりまわす感じで。
# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             VIRTUAL SIZE
utimukat55/debian   jessie              583d969ed337        4 minutes ago       153.3 MB
dockerのインストールが終わっていると、ホスト側にdocker0というNICが追加されますが、どうもここをルーティングする形でゲストから外に通信をするようです。
ルーティング設定と反映のコマンドを実行します。
/etc/sysctlの以下の行をアンコメント。
net.ipv4.ip_forward=1
以下のコマンドを実行して即時有効化
# sysctl -p
net.ipv4.ip_forward = 1

とりあえず起動する
docker images実行結果のIMAGE IDをイメージに指定、シェルを起動するよう引数に指定してコマンドを実行。
# docker run -t -i 583d969ed337 /bin/bash
root@ed7307934a79:/#
 今の状態だとifconfigもないなど色々扱いづらい(個人的に)なので、必要なパッケージを入れます。
# apt-get install net-tools openssh-server vim
vimを入れたので、/etc/apt/sources.listを必要であれば書き換えてミラーを変更します(USになっているので)

commitする!
起動しているbashを抜けると保存されずに終了してしまうので、別のターミナルを開いて、以下のコマンドを実行します。
# docker ps -a
CONTAINER ID        IMAGE                      COMMAND             CREATED             STATUS              PORTS               NAMES
ed7307934a79        utimukat55/debian:jessie   /bin/bash           23 minutes ago      Up 23 minutes                           lonely_euclid
 CONTAINER IDを引数に指定してcommitします。-mでコミットログも付けれるみたいですが未確認。
# docker commit ed7307934a79 utimukat55/debian:jessie
f86c3830f454c1ed1e217b86f09c47df41e2ed1bed22038813b478d1514283cc
commitが終わったら実行してた方を閉じます。exitでいいみたいです(Ctrl-dでも抜けれますがステータスが130になって正常終了じゃないみたいです。詳細不明)

色々と未整理なこと
コンテナを起動して終了すると、状態を記録した?ファイルが増えていきます。確認は以下のコマンドで可能です。
# docker ps -a
CONTAINER ID        IMAGE                      COMMAND             CREATED             STATUS              PORTS               NAMES
b12d2c3979c6        utimukat55/debian:jessie   /bin/bash           19 seconds ago      Exit 130                                boring_albattani  
84883288b0e9        utimukat55/debian:jessie   /bin/bash           About an hour ago   Exit 0                                  insane_shockley  
449810a25bd0        utimukat55/debian:jessie   /bin/bash           About an hour ago   Exit 0                                  grave_darwin        
この中から必要のないものがある場合、docker rmコマンドで削除可能です。引数はCONTAINER IDを指定します。
# docker rm b12d2c3979c6
いろんなコンテナを使っている場合、コンテナの一覧は以下のコマンドで確認できます。(既に出てきていますが)
# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             VIRTUAL SIZE
utimukat55/debian   jessie              583d969ed337        23 minutes ago      153.3 MB
base                latest              b750fe79269d        10 months ago       175.3 MB
base                ubuntu-12.10        b750fe79269d        10 months ago       175.3 MB
base                ubuntu-quantal      b750fe79269d        10 months ago       175.3 MB
base                ubuntu-quantl       b750fe79269d        10 months ago       175.3 MB
必要のないコンテナを削除する場合、docker rmiコマンドを使います。引数はIMAGE IDを指定します。
# docker rmi b750fe79269d
まだまだわかってない事のほうが遥かに多いですがとりあえずここまで。

ここまでやったイメージ
セントラルリポジトリ?にアップロードしました。
使う場合は以下のコマンドでどうぞ。
# docker pull  utimukat55/docker_jessie

0 件のコメント:

コメントを投稿