Dockerについてまとめ
Docker
軽量な仮想化環境 Build once, run anywhere
公式サイト
今回はUbuntu(Vagrant)上にDockerを作成していく
Vagrantに仮想化環境を用意(Ubuntu)
$ vagrant box add trusty64 https://cloud-images.ubuntu.com/vagrant/trusty/current/trusty-server-cloudimg-amd64-vagrant-disk1.box
Vagrantの仮想化準備
$ vagrant init trusty64
Vagrantfile
のプライベートネットワークのコメントを外す。
$ vagrant up
$ vagrant ssh
システムを最新の状態へ
$ sudo apt-get update
Dockerのインストール
$ sudo apt-get install docker.io
Dockerを実行できるように設定
$ sudo ln -sf /usr/bin/docker.io /usr/local/bin/docker
Dockerのバージョンを調べる
$ sudo docker --version
Dockerを仮想化環境で作っていく
Dockerのイメージを検索する(centOSの場合)
$ sudo docker search centos | more
Dockerのイメージを引っ張ってくる(centOSの場合)
$ sudo docker pull centos
Dockerのイメージの一覧を見る(引っ張ってこれたか確認)
$ sudo docker images
Dockerのイメージの詳細を見る
$ sudo docker inspect [ID(一意に決まる部分のみで良い) or centos:[TAG名]]
どういう設定になっているか見ることができる。
Dockerイメージの削除
$ sudo docker rmi [ID]
rmi = remove image
コンテナーを作る
$ sudo docker run centos echo "hello world"
前半のsudo docker run centos
でコンテナーを作り、
後半はそのコンテナー上でecho "hello world"
が実行される。
作られたコンテナーの"実行中"の一覧を見る
$ sudo docker ps
作られたコンテナーの一覧を見る
$ sudo docker ps -a
最新の5個だけ見たいという場合
-n=5
をつける。
コンテナー削除
$ sudo docker rm [コンテナーID(一意に決まれば良い)]
コンテナーのメモリの状況を3秒ごと表示させるコマンドをバックグラウンドで走らせる
$ sudo docker run -d [イメージ名] free -s 3
-d
バックグラウンド
-s [数字]
[数字]秒ごとに
実行中のコンテナーのログを見る
$ sudo docker logs [コンテナーID]
タスクをフォアグラウンドに持ってくる
$ sudo docker attach --sig-proxy=false [コンテナーID]
CTRL + C
で抜ける。
タスクをストップさせる
$ sudo docker kill [コンテナーID]
タスクを再開する
$ sudo docker start [コンテナーID]
イメージを作成していく
コンテナーを立ち上げる。インタラクティブモード、ターミナルを立ち上げる。bashシェルを立ち上げる
$ sudo docker run -i -t centos /bin/bash
色々設定。
イメージを作成
sudo docker commit [コンテナーID] [ユーザ名]/[わかりやすい名前]
イメージができたか確認
sudo docker images
Docker Build
イメージからコンテナーを立ち上げて、変更を加えてイメージにするという流れを自動化する。
Dockerfileを作成する
$ vi Dockerfile
下記を記入する。
FROM centos MAINTAINER [名前] <[メールアドレス]>(決まりではない) # RUN: buildするときに実行される RUN echo "now building..." # CMD: runするときに実行される CMD ["echo", "now running..."]
buildする。
$ sudo docker build -t [ユーザ名]/[わかりやすい名前]
イメージができたか確認
$ sudo docker images
実際に走らせる
$ sudo docker run [イメージ名]
Webサーバをインストールして、runの時に立ち上げてブラウザで中身を確認する
Dockerfileを書き換える
$ vi Dockerfile
buildの時にWebサーバをインストール
FROM centos MAINTAINER [名前] <[メールアドレス]>(決まりではない) RUN yum install -y httpd ADD ./index.html /var/www/html/ EXPOSE 80 CMD ["/usr/sbin/httpd", "-D", "FOREGROUND"]
index.htmlを作成
$ vi index.html
buildする
$ sudo docker build -t [ユーザ名]/[わかりやすい名前] .
最後の.
は忘れないようにすること!
runさせる。(コンテナー側のポート8080を80にリダイレクトさせたい、バックグラウンド)
$ sudo docker run -p 8080:80 -d [イメージ名]
192.168.55.44:8080
にアクセスする。