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 コンテナ名 bash

🐯 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

🐠 参考リンク

🖥 VULTRおすすめ

VULTR」はVPSサーバのサービスです。日本にリージョンがあり、最安は512MBで2.5ドル/月($0.004/時間)で借りることができます。4GBメモリでも月20ドルです。 最近はVULTRのヘビーユーザーになので、「ここ」から会員登録してもらえるとサービス開発が捗ります!

📚 おすすめの書籍