はじめに
前回に続き、今回は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についてです。
コメント