Docker入門 (全11回) - プログラミングならドットインストール
がレッスンに追加されたので、動画見ながら触ってみた。
ちゃんとした解説や流れはドットインストールのレッスンに譲るとして、やったことのメモを書いておく。
公式サイト→Homepage - Docker: the Linux container engine
動作環境と前準備
- vagrantcloudでubuntu-14.04のbase boxを突っ込む
- ただDockerに触ってみたいだけなんだったら、インストールが簡単なやつで進めるのが一番だと思う。
- Vagrantfileにポートフォワーディングルールを追加(22 => 2200)
- Private Networks - Networking - Vagrant Documentation
- これは必須ではなくて、単に私の環境ではやった方が便利なことだった。
- vagrantでubuntu-14.04のVMを立ち上げる
- Dockerのインストール
- chefで
apt-get upgrade
の実行がややこしそうだったので、aptというサードパーティcookbookを導入した。 - chef_lesson/site-cookbooks/docker at master · kimikimi714/chef_lesson · GitHubに流し込んだレシピを載せている。
- chefで
Dockerで使えるコマンド
- Dockerのコマンド一覧
- Dockerイメージの導入
$ sudo docker search centos | more $ sudo docker pull centos $ sudo docker images
- Dockerイメージの情報を閲覧する
$ sudo docker inspect centos:centos $ sudo docker inspect centos $ sudo docker inspect ***IMAGE_ID***
- Dockerイメージの削除
$ sudo docker rmi ***IMAGE_ID***
- DockerイメージからDockerコンテナの立ち上げ
$ sudo docker run centos echo "Hello World" $ sudo docker run -d centos free -s 3 (-dオプションでbackground立ち上げ) $ sudo docker run -i -t centos /bin/bash (-iはインタラクティブモード。/bin/bash立ち上げの場合、exitで抜けられる) $ sudo docker run -p 8080:80 -d centos (-pはポートフォワーディング設定。80番ポートを8080番ポートに向ける)
- 起動中のDockerコンテナの情報確認
$ sudo docker ps $ sudo docker ps -a -n=5 (-aオプションで終了したコンテナを閲覧。-n=numは最近立ち上げたコンテナをnum個表示する) $ sudo docker logs ***CONTAINER_ID***
- 起動中のDockerコンテナのプロセス終了
$ sudo docker stop ***CONTAINER_ID*** $ sudo docker kill ***CONTAINER_ID***
- 終了状態のDockerコンテナ再起動
$ sudo docker start ***CONTAINER_ID***
- Dockerコンテナの削除
$ sudo docker rm ***CONTAINER_ID***
- background起動中Dockerコンテナをforegroundにする(sig-proxyをfalseにするとCntl-Cで再びbackgroundに出来る)
$ sudo docker attach --sig-proxy=false ***CONTAINER_ID***
- Dockerコンテナからイメージを作る(image_nameは慣習的に user_name/image_nameらしい)
$ sudo docker commit ***CONTAINER_ID*** image_name
- DockerfileからDockerイメージを作る(Dockerfileはvagrant下に配置した)
$ sudo docker build -t image_name Dockerfile_PATH
やりたいこと
vagrant 1.6にバージョンアップしたことでDockerが新しいProviderとして追加された。まだ何が出来るのかも何も触れてない。vagrant + Dockerでどんなことが出来るのか試してみたいな。