Dockerのコマンドメモ
ドットインストールでDocker入門を受講したので学んだことをメモしておきます。
ほぼコマンドのみです。
詳細は公式サイトを。
https://www.docker.io/
1. VagrantでUbuntu 環境構築
Ubuntu Box の追加
http://www.vagrantbox.es/ からUbuntu の64bit版のURLを取得して下記コマンドを実行$ vagrant box add trusty64 http://cloud-images.ubuntu.com/vagrant/trusty/current/trusty-server-cloudimg-amd64-vagrant-disk1.box
ディレクトリを作成してinit
$ mkdir docker $ cd docker $ vagrant init trusty64
Vagrantfile の編集
$ vi Vagrantfile
config.vm.networkの行をコメントインして適当なIPアドレスを割り振る
Vagrantの起動/接続
$ vagrant up $ vagrant ssh
2. Docker インストール
参考 : http://docs.docker.io/installation/ubuntulinux/
インストール
$ sudo apt-get update $ sudo apt-get install docker.io $ sudo ln -sf /usr/bin/docker.io /usr/local/bin/docker # 確認 $ docker --version
3. Imageの操作
Docker Index から Image を取得
サイトURL : https://index.docker.io/# コマンドでの検索 $ sudo docker search centos | more # Imageの取得 $ sudo docker pull centos
Imageの確認
$ sudo docker images
Imageの詳細
$ sudo docker inspect <名前[:タグ] or IMAGE ID>
Imageの削除
$ sudo docker rmi <名前[:タグ] or IMAGE ID>
4. Containerの操作
Containerを起動してContainer上でコマンド実行
$ sudo docker run <Image名> <コマンド> # 例 $ sudo docker run <Image名> echo "Hello world"
実行中のContainerを表示
$ sudo docker ps
動作が終了したContainerを表示
$ sudo docker ps -a
最新の5つのContainerを表示
$ sudo docker ps -a -n=5
Containerを削除
$ sudo docker rm <CONTAINER ID>
バックグラウンドで実行
$ sudo docker run -d <Image名> <コマンド> # 例 $ sudo docker run -d centos free -s 3
実行中のContainerのログをみる
$ sudo docker logs <CONTAINER ID>
バックグラウンドで実行中のものをフォアグラウンドへ
$ sudo docker attach --sig-proxy=false <CONTAINER ID> # ctrl + c で抜ける
実行中のタスクをkill
$ sudo docker kill <CONTAINER ID>
タスクの再開
$ sudo docker start <CONTAINER ID>
Containerの中に入る
$ sudo docker run -i -t <Image名> /bin/bash
5. Imageの作成
Imageの作成
$ sudo docker commit <CONTAINER ID> <作成するImageの名前>
6. Dockerfileの使用
Dockerfileを作成することによってImageからContainerを作成し、変更を加え、それを元にImageを作成する一連の処理をスクリプト化することができる.
$ vi Dockerfile
DockerFileの書き方
FROM <元になるImage名> MAINTAINER <作成者> RUN <buildする時に実行されるコマンド(インストールなど)> CMD <runするときに実行されるコマンド> # CMD ["コマンド", "コマンド"] のような書き方が推奨されている # 例えば CMD echo "now, runninng..." # ならば 以下のように書ける CMD ["echo", "now runninng..."] # 例) FROM centos MAINTAINER name <mailaddress@hoge.com> RUN echo "now building..." CMD ["echo", "now runninng..."]
カレントディレクトリにあるDockerfileを使用してビルドする場合のコマンド
$ sudo docker build -t <新しいImage名> .