Dockerでよく使うコマンドまとめ


🚜 docker run/start/stop/rm/commitの概念図

docker run/start/stop/rm/commitの役割の概念図です。



参考元:Dockerにおけるコンテナのライフサイクル

🎳 docker ps

docker psはDockerコンテナの状態を確認するコマンドです。

docker ps [オプション]
オプション 説明
-a ローカルで起動されたDockerコンテナをすべて表示

🐝 docker pull

docker pullはDocker Hubやほかのレジストリからイメージを取得するコマンドです。

docker pull [オプション] イメージ名[:タグ|@イメージのハッシュ値]
オプション 説明
--all-tags すべてのタグ付けされたイメージを取得する
--disable-content-trust イメージのチェックをスキップする

実行例

docker pull debian:jessie

🗽 docker images

docker imagesはDockerイメージの一覧を表示するコマンド。

docker images [オプション] [レポジトリ]

🚕 docker build

docker buildはDockefileからDockerイメージを構築するためのコマンド。

docker build [オプション] パス/URL
オプション 意味
--build-arg Dockerfile内でARGで定義できる変数を指定
-f /パス/to/Dockerfile Dockerfileのファイルパスを指定
--no-cache=true build時にキャッシュを使わない
--pull=true FROMで指定したベースイメージを最新を取得する
--rm=true ビルド成功後中間コンテナを削除
--tag=xxx-t xxx タグの指定

🎃 docker run

docker runはDockerコンテナを起動するためのコマンド。

docker run [オプション] イメージ [コマンド] [引数...]
オプション 意味
--add-host サーバ名:IP Dockerコンテナの/etc/hostsを追記
-a STDIN/STDOUT/STDERRを出力する
-e 環境変数 環境変数をDockerコンテナに渡す
-f 環境変数ファイル 環境変数をファイルに設定してDockerコンテナに渡す
-i ホストの入力をコンテナの標準出力をつなげる
--log-driver=DRIVER ログドライバの指定。詳細は ロギング・ドライバの設定
-name Dockerコンテナに名前をつける
-pホストのポート:コンテナのポート ホストのポートとコンテナのポートをつなげる
-rm コンテナの終了時にコンテナを自動で削除する
-t コンテナの標準出力とホストの出力をつなげる

-itオプションの概念図

-itオプションをつけるとターミナルでコンテナを実行できます。



出典: Docker - docker runのオプションについて(19477)|teratail

🎉 docker exec

docker execはDockerコンテナに追加のプロセスを実行させるコマンドです。ターミナルへのアクセスなどを行います。

docker exec [オプション] コンテナ名 コマンド [引数...]

コンテナのshellに接続

docker exec -it コンテナ名 /bin/bash
オプション 説明
-i 標準入力(STDIN)を開いたままにする
-t 擬似ttyに接続する。ディスプレイ(STDOUT)をつなぐイメージ

🗻 docker attach

Dockerコンテナに起動しているPID=1のプロセスの標準入力(STDIN)と、標準出力(STDOUT)に接続するコマンドです。exitするとのそのプロセスも終了します。

docker attach [オプション] コンテナ名

exitするとPID=1のプロセスが終了するため、コンテナが停止します。

🤔 docker stop/kill

docker stopはコンテナプロセスにSIGTERMを送信後、一定時間が経過したらSIGKILLを送信する。

docker stop [オプション] コンテナ名 -f 待ち秒数

docker killはコンテナプロセスにSIGKILLを送信する。

docker kill [オプション] コンテナ名

🐞 docker start

docker stopは停止したコンテナを再起動するためのコマンド。

docker start [オプション] コンテナ名

😼 docker commit

Docker run & stopで停止したコンテナファイルを新しいイメージにするためのコマンドです。

docker commit [オプション] コンテナ名

通常はイメージの管理にDockerfileを使うのが望ましいので、デバッグ用、作業中のデータセットを別のサーバに持っていくために利用します。

🏀 docker search

docker searchはDocker Hub上のDockerイメージを検索するコマンド。

docker search [オプション] 検索ワード

🍄 docker rmi

docker rmiはDockerイメージを削除するコマンド。

docker rmi [オプション] イメージ名

🐠 docker login

docker loginはレジストリサーバへのログインコマンド。以下は実行例です。

docker login
Username: xxx
Password:
Email: xxx@gmail.com

🚌 docker tag

docker tagはイメージにタグを付けるためのコマンドです。

docker tag ソースイメージ オーガニゼーション/イメージ:タグ

タグを設定する設定例です。

# イメージIDからタグ設定
docker tag イメージID(0e5574283393) オーガニゼーション/イメージ:タグ
# 名前とタグから別のタグを設定
docker tag イメージ名:タグ(httpd:test) fedora/httpd:version1.0.test

🍣 docker push

docker pushはイメージをレジストリ(Docker Hubなど)に登録するコマンドです。

docker push [オプション] イメージ名[:タグ]

🐹 docker system prune

docker system pruneはDocker 1.13.ゼロから追加された機能で、使っていないコンテナやイメージを削除するコマンドです。

docker system prune
WARNING! This will remove:
- all stopped containers
- all volumes not used by at least one container
- all networks not used by at least one container
- all dangling images
Are you sure you want to continue? [y/N] y
Total reclaimed space: 0 B

🏈 docker inspect

docker inspectはDockerイメージ/コンテナの詳細情報を表示するコマンドです。

docker inspect [オプション]

😀 docker history

docker historyを使うとDockerイメージのレイヤを確認できます。

docker history repository:tag

😸 参考リンク

📚 おすすめの書籍