【どこでも同じ環境で開発を】Dockerざっくりまとめ ②Dockerコマンド

プログラミング
LINEで送る
Pocket

はじめに

前回に続き、今回はDockerコマンドについてです。
Dockerドキュメントには細かく全てのコマンドが記載されていますが、「米国AI開発者がゼロから教えるDocker講座」で学習した、恐らく使う頻度が高いであろうコマンドを中心にまとめました。
細かな使い方や多彩なオプションに関しては、Dockerドキュメントも参照した方がいいかもしれません。

Dockerコマンド

Hubのためのコマンド

Dockerレジストリ・サーバに登録またはログインする

docker login [option] [server]

サーバの指定が無ければ "https://index.docker.io/v1/" をデフォルトで使用

レジストリからイメージやリポジトリを取得する

docker pull [image]

イメージやリポジトリをレジストリに送信する

docker push [image]

imageのためのコマンド

パスにあるソースコードから新しいイメージを構築する

docker build [path]

pathに指定した場所にあるDockerfileからイメージを構築する。カレントファイルにDockerfileがあるならdocker build .で構築可能。

イメージを一覧表示する

docker images

コンテナの変更を元に新しいイメージを作成する

docker commit [container] [image]

イメージを管理するにはcommitよりDockerfileの使用がおすすめ。

リポジトリ内のイメージにタグ付けする

docker tag [source] [target]

sourceの名前をtargetの名前に変更する。

イメージを削除する(複数可)

docker rmi [option] [image]

imageは半角スペースで複数書くことができ、複数同時に削除可能。
オプションとして、-fをつけると強制削除。

コンテナのためのコマンド

新しいコンテナを実行する命令

docker run [option] [image] [command]

オプションとして-itをつけることでインタラクティブに会話可能かつ、きれいな表示でコンテナの操作が可能になる(-iでインタラクティブ、-tできれいな表示)。
オプションに-dをつけて実行することで、バックグラウンドでの実行が可能。後にexec等で操作。
オプションに--rmをつけて実行することで、コンテナ終了時に自動的にそのコンテナを削除する。
オプションに-v [host/path]:[container/path]をつけて実行することで、ファイルシステムの共有が可能。
オプションに-u $(id -u):$(id -g)をつけて実行することで、ファイルへのアクセス権限を設定可能。
オプションに-p [host_port]:[container_port]をつけて実行することで、ポートをつなげることが可能。
オプションに--nameをつけて実行することで、コンテナ名を設定可能。
例として、jupyterlabを立ち上げるときは以下のような感じ。

docker run -p 8888:8888 -v ~[host/path]:[container/path] --name [container_name] [image]

コンテナの一覧を表示する

docker ps [option]

オプションに-aで全てのコンテナを表示する(デフォルトは実行中のコンテナのみ表示)。

コンテナを再起動する

docker restart [container]

実行中のコンテナでコマンドを実行する

docker exec [option] [container] [command]

オプションとして-itをつけることでインタラクティブに会話可能かつ、きれいな表示でコンテナの操作が可能になる(-iでインタラクティブ、-tできれいな表示)。
オプションに-dをつけて実行することで、バックグラウンドでの実行が可能。後にexec等で操作。

コンテナを削除する(複数可)

docker rm [option] [container]

containerは半角スペースで複数書くことができ、複数同時に削除可能。
オプションとして、-fをつけると強制削除。

その他

コンテナやイメージの情報を表示

docker inspect [container/image] 

未使用のコンテナ、イメージなどを全て削除する

docker system prune [option] 

オプションに-fで、確認なく強制的に削除が可能。


以上、よく使うであろうDockerコマンドをまとめました。
次回はDockerfileについてです。

LINEで送る
Pocket

コメント

タイトルとURLをコピーしました