Dockerをインストールする
Windows
scoopを使うと一瞬です。
scoop install docker docker-compose docker-machine
Dockerイメージをビルドする
Dockerイメージをビルドするには、Dockerfile
というテキストファイルを作成し、docker build
コマンドを使用します。
Dockerfile
には、アプリケーションの環境や依存関係を設定する手順が記述されています。
Dockerfile
を作成したら、以下のコマンドを使用してDockerイメージをビルドします。
docker build -t <name>:<tag> <Dockerfile directory>
-t
オプションを使用して、イメージに名前とタグを付けることができます。
<name>
には、イメージ名を指定します。通常はリポジトリ名を指定します。
<tag>
には、任意のタグを指定します。タグは省略可能です。
<Dockerfile directory>
には、Dockerfile
が含まれるディレクトリのパスを指定します。
例えば、以下のようにコマンドを実行して、イメージを作成することができます。
docker build -t my-image:1.0 .
このコマンドは、現在のディレクトリにあるDockerfile
からmy-image
という名前のDockerイメージをビルドします。
ビルドが完了すると、指定した名前のイメージがローカルのDockerレジストリに登録されます。
Docker HubからDockerイメージを取得する
docker pull <image name>
コンテナを起動する
正しくは、コンテナでコマンド[COMMAND]
を実行するするコマンドです。ただし、実行時にコンテナを作成し、開始するため、コンテナを起動する時に、よく使われます。
docker run [OPTIONS] <image name> [COMMAND] [ARG...]
コンテナをバックグラウンドで起動する
-d
オプションをつけると、デタッチドモードで起動します。デタッチドモードで起動すると、起動時にコンテナに入らずコンソールのままになります。
docker run -d --name <container name> <image name>
コンテナに名前を付ける
--name
オプションで、コンテナ名を設定できます。
コンテナ終了時にコンテナを破棄する
--rm
オプションを付けると、コンテナ終了時にコンテナが破棄されます。
docker run --rm --name <container name> <image name>
コンテナ情報を出力する
起動中のコンテナ情報を出力する
docker ps
全てのコンテナ情報を出力する
停止しているコンテナは、オプションなしだと表示されません。--all
オプションをつければ停止しているコンテナも表示されます。
docker ps -a
docker ps --all
出力結果をフィルタリングする
name=db
でNAMESにdb
を含むコンテナのみを表示します。
docker ps -f name=db
docker ps --filter name=db
ファイル・フォルダをホストからコンテナ内へコピーする
docker cp <source path> <container id>:<destination path>
コンテナでコマンドを実行する
docker exec <container> <command>
bashを立ち上げて操作する
docker exec -it <container> /bin/bash
自動再起動
docker起動時にrestart
を設定することで、コンテナ停止時の再起動について設定ができます。
オプション | 機能 |
---|---|
no | 再起動しない(デフォルト) |
on-failure | プロセスが正常終了(ステータス0)以外で終了した時に、再起動する |
always | stopされない限り、再起動する |
unless-stopped | stopされない限り、再起動する。ただし、最後の状態が終了ステータスの場合は再起動しない |
コンテナを停止する
起動中のコンテナは、docker stop
で停止できます。
docker stop <container>
コンテナを削除する
docker rm <container>
コンテナを強制的に削除する
docker rm --force <container>
コンテナのリソース使用状況を確認する
コンテナのメモリ使用量やCPU利用率などの、リソース使用状況を確認します。
docker container stats
ネットワークを一覧表示する
docker network ls
ネットワークドライバー
bridge
: デフォルトのドライバー。host
: Dockerホストのネットワークを直接使用する。overlay
: swarmサービスで使用するドライバー。macvlan
: コンテナにMACアドレスを付与する。none
: ネットワークに接続しない。
ネットワークの詳細を表示する
docker network inspect <network>
ネットワークからコンテナを切り離す
docker network disconnect <network> <container>
ネットワークを削除する
docker network rm <network>