Docker |Docker Compose について


この記事では、Docker、Docker Compose について記載する。


環境

ここでは、Windows のローカル PC に Docker For Windows または Docker Tool Box インストールして、Dcocker を動作させるのではなく、Play with Docker を無料で利用する。


Play with Docker は、クラウド上に Docker の開発環境が用意されているものであり、ローカル PC のブラウザを利用して、クラウド上で Docker を動かすことができる。


Play with Docker を利用する方法


Docker Hub アカウントの作成

Play with Docker を利用するためには、Docker Hub アカウントが必要になるため、Docker Hub アカウントを作成する。


1. Docker Hub 公式ページ https://hub.docker.com/ にブラウザでアクセスして、「Continue with Email」をクリックする。ここでは、Email でアカウントを作成する。



2. アカウント作成画面で、Email とパスワードを入力して、「Sign up」をクリックする。ここで、「Send me occasional product updates and announcements.」のチェックボックスにはチェックしない。



3. Email が届くので、メール本文内の「Vertify Email Adress」をクリックする。


4. Docker Hub にサインインする。




5. 無料で利用するできるように、プランは Personal の「Continue with free」をクリックする。


 
これで、Docker Hub アカウントの作成は完了となる。



Play with Docker の利用

Play with Docker を利用して、ブラウザにてクラウド上で Docker を動かす。

1. Play with Docker 公式ページ https://www.docker.com/play-with-docker にブラウザでアクセスして、Lab Environment の「Get Started」をクリックする。Lab Environment を使用することでクラウド上で Docker を動かすことができる。


2. Docker Hub アカウントでログインする。Docker プレイグラウンドというサーバが 1 日につき、4 時間まで使用することができる。








3. 「ADD NEW INSTANCE」をクリックすると、仮想マシンが立ち上がる。Docker はデフォルトでインストールされており、docker version コマンドを実行して、Docker のバージョンを確認できる。



Docker とは

Docker とは、コンテナ型仮想環境のこと。

Docker ファイル

Dockerfile とは、Docker イメージをコード化したもの。

docker コマンド


Docker のバージョン確認

docker- -v
または
docker --version

docker build|Docker ファイルから Docker イメージを作成

Docker ファイルをビルドして、Docker イメージを作成する。

docker build dockerファイルが格納されているディレクトリ
このコマンドでは、Docker イメージ名を指定していないため、Docker イメージ名は付かず、Docker イメージ名はなし。

docker build -t Dockerイメージ名 Dockerfileが格納されているディレクトリ
-t オプションで Docker イメージ名を指定する。

docker images|Docker イメージを一覧表示

ローカルにある Docker イメージを一覧表示する。

docker images

・表示内容
REPOSITORY:Docker イメージ名
TAG:タグ
IMAGE ID:Docker イメージの一意な ID
CREATED:作成日情報
SIZE:Docker イメージのサイズ

追記:
Docker イメージは容量が大きいケースが多いため、不要なイメージは削除する。

docker rmi|Docker イメージを削除

Docker イメージを削除する。

docker rmi DockerイメージID
起動中のコンテナの Docker イメージは削除できない。
コンテナを docker stop コマンド で停止して、docker rm コマンドで削除して、Docker イメージを削除する。

docker run|Docker イメージからコンテナを起動

ローカルにある Docker イメージ からコンテナを 1 つ起動する。Docker イメージ がない場合は、Docker Hub から自動的にダウンロードして、コンテナを起動する。

docker run dockerイメージ名

docker run --name 任意のコンテナ名 dockerイメージ名
--name オプションで任意の名前を付けて コンテナを起動する。

docker run --name 任意のコンテナ名 --rm dockerイメージ名
docker run dockerイメージ名 でコンテナ起動した後に、もしコンテナが停止した場合は、停止したコンテナ自体が残るが、--rm オプションを利用すると、停止したコンテナを削除してくれるため、コンテナの消し忘れを回避することができる。

docker ps|コンテナを一覧表示

起動中・停止中のコンテナを一覧表示する。

docker ps
起動中の コンテナのみすべて一覧表示する。

docker ps -a
起動中、および停止中のコンテナ含めてすべて表示する場合は、-a オプションを付けて実行する。

docker start/stop/restart|コンテナの起動 / 停止 / 再起動

Docker コンテナを起動 / 停止 / 再起動する。

docker start/stop/restart コンテナID/コンテナ名

docker exec -it|コンテナ内に入る

Docker コンテナに入る。

docker exec -it Dockerコンテナ名 /bin/bash
※/bin/bash はコマンド

docker exec|コンテナ内に入らずコマンド実行

Docker コンテナ内に入らず、コマンドを実行する。

docker exec Dockerコンテナ名 コマンド

docker rm|コンテナを削除

Docker コンテナを削除する。

Docker rm コンテナ名
起動中のコンテナは削除できない。
停止中のコンテナを削除する。

Docker rm -f コンテナ名
-f オプションで起動中のコンテナを強制削除する


docker-compose とは

yaml ファイルという設計図で、複数のコンテナをまとめて管理できるツール。
複数のコンテナを連携させて、それを一括で管理する便利な仕組みにできる。

docker-compose の yaml ファイルの設計図

yaml ファイルでは、スペースで親子関係を指定する。個人的にスペースは、2 個を推奨する。

必ず、下記のように、version と services を指定する。

services では、稼動させるコンテナを指定する。下記のサービス名  container01 と container02 は、任意の名前を指定する。

build は Dockerfile の相対パス ( yaml ファイルからみたパス ) を指定して、image は Docker イメージを指定する。
yaml ファイルでパスを指定する場合、環境依存しないよう絶対パスではなく、相対パスで指定することが推奨される。

container_name では、コンテナ名を指定する。


version: '3.1'
services:
  container01:
    build: ./sample_docker_file
    container_name: "sample_container01"
  container02:
    image: sample_docker_image
    container_name: "sample_container02"

docker-compose コマンド


docker-compose のバージョン確認

docker-compose -v
または
docker-compose --version

コンテナを作成して起動|docker-compose up

対象となる docker-compose の yaml ファイルで管理されているコンテナを作成して、起動する。

docker-compose up -d
コマンドを実行するカレントディレクトリの docker-compose.yml のみ適用する。

コンテナを停止して削除|docker-compose down

対象となる docker-compose の yaml ファイルで管理されているコンテナを停止して、削除する。

docker-compose down
コマンドを実行するカレントディレクトリの docker-compose.yml のみ適用する。カレントディレクトリ内に docker-compose.yml が存在しない場合は、上の階層を探す。

docker-compose -f docker-composeのyamlファイル名 down
-f オプションで docker-compose の yaml ファイルを指定する。

コンテナを再起動|docker-compose restart

対象となる docker-compose の yaml ファイルで管理されているコンテナをすべて再起動する。設定ファイルを変更した場合などに使用するコマンド。

docker-compose restart
コマンドを実行するカレントディレクトリの docker-compose.yml のみ適用する。カレントディレクトリ内にdocker-compose.yml が存在しない場合は、上の階層を探す。

docker-compose -f docker-composeのyamlファイル名 restart
-f オプションで docker-compose の yaml ファイルを指定する。

コンテナ一覧を表示|docker-compose ps

対象となる docker-compose の yaml ファイルで管理されているコンテナ一覧を表示する。

docker-compose ps
コマンドを実行するカレントディレクトリの docker-compose.yml のみ適用する。カレントディレクトリ内に docker-compose.yml が存在しない場合は、上の階層を探す。 

docker-compose -f docker-composeのyamlファイル名 ps
-f オプションで docker-compose の yaml ファイルを指定する。

対象サービスのコンテナを起動|docker-compose run

docker-compose の yaml ファイルで管理されているサービス 1 つを指定して、コンテナを起動する。Dockerfile からビルドする前のコンテナでも使用可能である。

docker-compose run サービス名
コマンドを実行するカレントディレクトリの docker-compose.yml のみ適用する。カレントディレクトリ内に docker-compose.yml が存在しない場合は、上の階層を探す。

docker-compose -f docker-composeのyamlファイル名 run サービス名
-f オプションで docker-compose の yaml ファイルを指定する。


参考

Dockerfile を書くベストプラクティス

Dockerfile リファレンス

docker-compose コマンド概要
Docker で使う複数コンテナ・アプリケーションの定義と実行

使い方:
  docker-compose [-f=<引数>...] [オプション] [コマンド] [引数...]
  docker-compose -h|--help

オプション:
  -f, --file FILE             別の compose ファイルを指定 (デフォルト: docker-compose.yml)
  -p, --project-name NAME     別のプロジェクト名を指定 (デフォルト: directory name)
  --verbose                   詳細情報を表示
  -v, --version               バージョンを表示して終了
  -H, --host HOST             接続先のデーモン・ソケット

  --tls                       TLS を使う;--tlsverify の指定も含む
  --tlscacert CA_PATH         この CA で署名した証明書のみ信頼
  --tlscert CLIENT_CERT_PATH  TLS 証明書ファイルへのパス
  --tlskey TLS_KEY_PATH       TLS 鍵ファイルへのパス
  --tlsverify                 TLS を使いリモートを認証
  --skip-hostname-check       クライアントの証明書で指定されたデーモンのホスト名を確認しない。
                              (たとえば、docker ホストが IP アドレスの場合)

コマンド:
  build              サービスの構築または再構築
  config             compose ファイルの確認と表示
  create             サービスの作成
  down               コンテナ・ネットワーク・イメージ・ボリュームの停止と削除
  events             コンテナからリアルタイムにイベントを受信
  help               コマンド上でヘルプを表示
  kill               コンテナを kill (強制停止)
  logs               コンテナの出力を表示
  pause              サービスを一時停止
  port               ポートに割り当てる公開用ポートを表示
  ps                 コンテナ一覧
  pull               サービス用イメージの取得
  restart            サービスの再起動
  rm                 停止中のコンテナを削除
  run                1度だけコマンドを実行
  scale              サービス用コンテナの数を指定
  start              サービスの開始
  stop               サービスの停止
  unpause            サービスの再開
  up                 コンテナの作成と開始
  version            Docker Compose のバージョン情報を表示








スポンサーリンク

0 件のコメント :

コメントを投稿