Dockerのコマンドをまとめてみた

Dockerロゴ

最近、Dockerの勉強を始めましたのでよく使うコマンドをメモ書きでまとめてみました。

Dockerとは?

Dockerは、Docker社が開発したコンテナのアプリケーション実行環境を管理するオープンソースソフトウェアです。
開発しているプログラムと合わせてミドルウェアをコンテナ化する事で、ミドルウェアのバージョン違いや構成違いによる動作の問題を解決することができます。

勉強したコマンド

Pull:Dockerイメージを取得

docker image pull [イメージ名](:バージョン)
docker image pull nginx
docker image pull nginx:latest

List:Dockerイメージの一覧表示

取得したDockerイメージを一覧で取得・表示します。

docker image ls

History:Dockerイメージの履歴表示

指定したDockerイメージの各レイヤーをどのように作成したか履歴を確認できます。
自作のDockerイメージの参考にも使う事が出来そうです。

docker image history [イメージ名]
docker image history nginx

Rmi:Dockerイメージの削除

取得したDockerイメージを削除します。

docker image rm [イメージ名]
docker image rm nginx

Run:コンテナの起動

取得したDockerイメージをコンテナとして起動します。
Dockerイメージがない場合はダウンロードされます。
「-p」を指定する事でコンテナとホストのポートを関連付けできます。

docker container run -p [ホストのポート]:[コンテナのポート] --name [コンテナ名] [イメージ名]
docker container run -p 8080:80 --name nginx nginx

Run:コンテナをバックグラウンド起動

取得したDockerイメージをコンテナとしてバックグラウンドで起動します。
「--detach」または「-d」を指定する事でバックグラウンドでの起動になります。

docker container run --detach -p 80:80 --name nginx nginx
docker container run -d -p 80:80 --name nginx nginx

Stop:コンテナの停止

起動中のコンテナを停止します。

docker container stop [コンテナ名]
docker container stop nginx

Rm:コンテナの削除

停止中のコンテナを削除します。

docker container rm [コンテナ名]
docker container rm nginx

Log:コンテナ内のログ表示

コンテナ内のログを取得して表示します。

docker container logs [コンテナ名]
docker container logs nginx

Inspect:コンテナのメタデータを表示

コンテナのメタデータを表示します。

docker image inspect [コンテナ名]
docker image inspect nginx

Exec:コンテナのシェル操作

起動中のコンテナにはいりシェル操作をおこないます。

docker container exec -it [コンテナ名] sh
docker container exec -it nginx sh

難しいコマンド

Run:指定のディレクトリを置き換えてコンテナを起動

「--volume」で指定したディレクトリにホストのディレクトリを設定します。
下記の場合は、/usr/share/nginx/html にコマンドを入力時点のpwdのディレクトリを設定します。
「--rm」はコンテナを停止した場合に内部のデータがクリーンアップします。

docker container run -d -p 80:80 --volume "$(pwd)":/usr/share/nginx/html --rm --name nginx nginx

Run:環境変数を設定してコンテナを起動

「--env」でコンテナ起動時に環境変数を設定して起動する事ができます。

docker container run -d --env ENV=ABCDEFG --name nginx nginx

勉強中でございますがコマンドをまとめてみました。
その他コマンドについては公式ドキュメントをご確認下さい。

■ Docker - コマンドライン・リファレンス
https://matsuand.github.io/docs.docker.jp.onthefly/engine/reference/run/