どうも中田です。
今回はDocker。
巷でよく話には出てましたが使ってみるとめちゃ便利。
雑ですが、作業で使いそうなコマンドをピックアップ!
■事前準備
・VirtualBoxのインストール
・Docker-toolboxのインストール(Docker Tookbox)
■VM操作(docker-machine)
VM作成
$ docker-machine create --driver virtualbox default
VM一覧
$ docker-machine ls
VM開始
$ docker-machine start default
VM環境設定確認
$ docker-machine env default
シェルをdefalutのVMにつなぐ
$ eval "$(docker-machine env default)"
hello-worldコンテナ実行
$ docker run hello-world
※この辺はDocker Quick Start Terminal.app を実行したら自動的に実施されるのですが、
手動でやるとしたらこうってことです。
■イメージ操作(docker)
イメージ検索
$ docker search ubuntu
イメージ取得
$ docker pull ubuntu
$ docker pull ubuntu:12.04 <--バージョン指定
イメージ登録
$ docker push ubuntu
イメージ削除
$ docker rmi *image_id*
イメージ作成(コミット)
$ docker commit *container_id* *image_name*
イメージエクスポート
$ docker save *image_id* > filename.tar
イメージインポート
$ docker load < filename.tar
イメージからコンテナ生成(docker run)
ホスト名付与(-h)
$ docker run -h *hostname* -i -t ubuntu /bin/bash
ポートフォワード(host:8080 -> guest:80)
$ docker run -i -t -p 8080:80 ubuntu /bin/bash
コンテナ名付与(–name)
$ docker run --name *container_name* -i -t ubuntu /bin/bash
起動後のインタラクティブモード(-i)
$ docker run -i -t ubuntu /bin/bash
終了時のコンテナ破棄(-rm)
$ docker run --rm -t -i ubuntu /bin/bash
CPU使用率指定(-c)
$ docker run -c 200 -i -t ubuntu /bin/bash
メモリ指定(-m)
$ docker run -m 512m -i -t ubuntu /bin/bash
コンテナバックグラウンド起動(-d)
$ docker run -i -t -d ubuntu /bin/bash
ホストディレクトリのマウント
$ docker run -v /home/user/dir:/root/dir
■コンテナ操作
コンテナ一覧
$ docker ps -a
コンテナ起動
$ docker start -a *container_id*
-a は “attach”
コンテナ停止
$ docker stop *container_id*
コンテナ再起動
$ docker restart *container_id*
コンテナログイン(起動中コンテナ)
$ docker attach --sig-proxy=false *container_id*
コンテナ削除
$ docker rm *container_id*
コンテナ全削除
$ docker rm $(docker ps -a -q)
コンテナエクスポート
$ docker export *container_id* > filename.tar
コンテナインポート(URL)
$ docker import url *image_id*
コンテナインポート(ファイル)
$ cat filename.tar | docker import - *image_id*
コンテナからイメージ作成(コミット)
$ docker commit *container_id* *image_name*