【Docker】整理常用的命令
因为对于Docker我一开始只是凭感觉而已,没有系统性地学习过,所以我决定重新学习一遍。
由于命令相当多,给我带来了一些混乱的印象,所以我想把经常使用的命令记录下来,当作备忘录保存下来。
如果有其他需要记录的命令出现,我会随时进行更新。
紹介するコマンドは新体系(v1.13以降)のコマンドに統一しています
新旧比較の情報は「docker container / image コマンド新旧比較」を参考にさせていただきました。
图片相关
docker image pull {イメージ名:バージョン}(旧:docker pull)
・イメージをDockerHubから取得
docker image ls(旧:docker images)
・ローカルのイメージ一覧を表示
・-a 付与で中間イメージを含め表示
・-q 付与でイメージIDのみ表示
docker image rm {イメージ名}(旧:docker rmi)
・ローカルのイメージを削除
・docker image rm $(docker image ls -aq)で全ローカルイメージを一括削除
コンテナ起動中のイメージに対し削除するとエラーが発生します
Error response from daemon: conflict: unable to delete 43677… (must be forced) – image is being used by stopped container 5c181…
container関連
docker container run {イメージ名}(旧:docker run)
・指定したイメージからコンテナを作成し起動
docker container exec {コンテナ名} {実行コマンド}(旧:docker exec)
・Up状態のコンテナに任意のコマンドを実行させる
docker container ls(旧:docker ps)
・ローカルに存在するコンテナ一覧を表示
・-a 付与で未起動のコンテナも含めて表示
docker container start(旧:docker start)
・停止中のコンテナを停止
停止正在运行的容器(旧称:停用docker)
重新启动正在运行的容器
docker container rm {コンテナ名}(旧:docker rm)
・コンテナを削除
・-f 付与で起動中のコンテナに対しても強制的に削除
・docker container rm pruneでExitedステータスのコンテナを削除
・docker container rm -f $(docker container ls -aq)で全コンテナを一括削除
起動中のコンテナに対し削除をするとエラーが発生します(コンテナを停止するか-fオプションで強制削除が必要)
Error response from daemon: You cannot remove a running container 256d77…37. Stop the container before attempting removal or force remove
docker container [ run | exec ] の詳細
docker container run
例:docker container run ubuntu:20.04
・Ubuntuイメージのデフォルトコマンドはbash
・上記コマンドの場合、標準入力がCLOSEDの状態でbashを実行することになる
・この場合bashは起動と同時に実行プロセスを終了するため、コンテナのSTATUSはExitedの状態になる
% docker container run ubuntu:20.04
% docker container ls -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
b238da560b2f ubuntu:20.04 "/bin/bash" 12 seconds ago Exited (0) 11 seconds ago dreamy_lehmann
・そのためコンテナを起動状態にするためには -i が必要になる(-i = –interactive = 対話形式での入力を可能とする)
・-t 付与で擬似TTYを割り当て端末デバイスの名前を表示できる(なぜコマンドの実行結果なども綺麗になるのかよくわからなかった…)
・-d 付与でバックグラウンドでコンテナを実行する(起動時に中に入りたくない時使う)
・-rm 付与でコンテナ終了時に自動的に削除する
ちなみに、-tオプションのみで起動すると標準入力がCLOSEDの状態なのでコマンド入れても反応しませんでした。
% docker container run -t ubuntu:20.04
root@b75f2b49f00e:/#
exit
ls
まとめると
「コンテナのSTATUSをUpの状態してバックグラウンドで起動したい。必要に応じて中に入りたい。停止したらコンテナは削除したい」
のような考えの場合、
docker container run –rm -itd ubuntu:20.04
というコマンドが出来上がる。
・docker container run {イメージ名} [COMMAND] [ARG]でコンテナ起動時のコマンドを指定することも可能
% docker container run -it ubuntu:20.04 pwd
/
%
上の例では-itを指定しているがコマンドにpwdを指定しているため(デフォルトコマンドであるbashを実行しない)、rootディレクトリが表示されてExitedとなる。
在容器中执行docker命令
如果想进入在后台启动的 Ubuntu 镜像容器中,可以使用 exec 命令并指定容器名称(容器 ID),然后执行 bash 命令来进入其中。当然,如果没有添加 -it 参数,容器将立即退出,无法进入其中。
% docker container run -itd ubuntu:20.04
9db853cdddc5f185cd34c8841ba8bad92ee97073d61057c8e96593b3c0dcdf49
% docker container ls
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
9db853cdddc5 ubuntu:20.04 "/bin/bash" 7 seconds ago Up 5 seconds boring_euclid
% docker container exec -it 9db853cdddc5 bash
root@9db853cdddc5:/#
请参考
-
- https://www.udemy.com/share/109eIi3@7Cii6t4rdgEl9Zxo-uQXru_D2zJ2NMuPZOeyyJi1U00ODvTFowBLG5RwbiLrKvkdDg==/
-
- https://docs.docker.jp/index.html
-
- https://qiita.com/zembutsu/items/6e1ad18f0d548ce6c266
- https://zenn.dev/ryuu/scraps/a1efb79aaa1bb2