基本 †
注意点 †
- Dockerではコンテナを削除するとコンテナ内のファイルシステム内に加えた変更点はすべて破棄されてしまう
インストール †
# yum install docker
# chkconfig docker on
# service docker start
# systemctl enable docker.service
コマンド †
- イメージ検索
# docker search [検索ワード]
- イメージ取得
# docker pull [イメージ]
- コンテナ一覧を表示
# docker ps
- オプションなしだと起動中のみ表示
- -a 停止中を含む全てのコンテナを表示
- --no-trunc 長いコマンドなどを省略せずにすべて表示
- コンテナ内のプロセス一覧を表示
# docker top コンテナ名
- コンテナを起動
# docker start [コンテナID]
- コンテナを停止
# docker stop [コンテナID]
- コンテナから出る
- Ctrl+p Ctrl+q
- exit で抜けるとコンテナが終了してしまうので注意!
頻出イメージ †
- 標準UNIXコマンドの主要コマンドをまとめて1つの実行ファイル化したツール
docker-compose †
- docker-composeはDockerのコマンドであり、docker-compose.ymlという設定ファイルに基づき複数のコンテナを用いたサービスを従来よりも簡単に管理できるようにするもの
- docker-compose.yml と docker-composeコマンドを使うことにより次のようにコンテナ作成を自動化できる
- コンテナ上のサービスはサーバ内のファイルやリポジトリを元に作成させられる
- サービス起動に必要な環境変数を外部ファイルから読み込める
- 再起動時のサービスの振る舞いを設定できる
- サービス上のデータはデータボリュームを使い保管できる
- サービス上のポートをホスト側に繋ぐことが出来る
- サービス同士の依存関係が設定できる
インストール †
# curl -L https://github.com/docker/compose/releases/download/1.3.1/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
# chmod +x /usr/local/bin/docker-compose
データの永続化 †
データボリューム †
- ホストのファイルシステム内のディレクトリ(一般に「/var/lib/docker/volumes」)で、ここにコンテナの永続データを格納する
- このディレクトリはコンテナ起動時にマウントポイントとして表示され、管理者がこれを指定する
- 1つまたは複数のコンテナ内に特別に指定されたディレクトリ(コンテナから見た時)
- Dockerで1つのオブジェクトとして管理されている
- コンテナをまたいで共有と再利用可能である
- データボリュームへ変更した結果はすぐに反映される
- コンテナ自身が消えてもデータボリュームは消えない
# docker run -t -i -v testvolume01:/data --name srv01 centos /bin/bash
- -v [ボリューム名]:[コンテナ側のマウントポイント]
データボリュームコンテナ †
- データボリューム自体は、外部からアクセスができないため、データボリュームコンテナと呼ばれるコンテナを作成し、そこにデータボリュームをマウントする
- コンテナをまたいで永続的なデータが共有できる
- 通常のコンテナと何ら変わらないが、コンテナのイメージはライトなbusyboxなどを使う
ボリュームプラグイン †
- Dockerホスト以外のストレージをボリュームとして利用できる
- 独自のプラグインを開発できるよう仕様も公開されている
コンテナオーケストレーションツール †
Mesos †
Kubernetes †