Docker コマンド覚書

Docker コマンド覚書:

個人的にいつもdockerのコマンドで迷子になってしまうので

ここに備忘録として残します。


dockerコンテナに対するコマンド


(1)任意のDockerイメージからコンテナを起動

docker run --name some-running-container -d  -p 11180:80 nginx 
# --name コンテナ名の指定  
# -d バックグラウンドで実行  
# -p ホスト側port:コンテナ側port  
# 最後のオプション(利用するコンテナイメージ)  


(2)動作しているコンテナ一覧を取得

docker container ls  
# docker container ls --help を実行するとわかるが、実行中のコンテナのみを表示 
 
docker container ls -a 
# 実行、停止問わずすべてのコンテナを表示 
以下が上記コマンドの実行例となる

CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                   NAMES 
3e2cb7259af9        nginx               "nginx -g 'daemon of…"   8 seconds ago       Up 6 seconds        0.0.0.0:11180->80/tcp   some-running-container 


(3)指定したコンテナを削除する

起動中のコンテナをそのまま削除することはできないためコンテナを停止させる。

# コンテナ停止コマンド 
docker contaienr stop some-running-container  
# 停止中コンテナ確認コマンド 
docker container ls -a 
 
# 実行例 
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS                     PORTS               NAMES 
3e2cb7259af9        nginx               "nginx -g 'daemon of…"   2 minutes ago       Exited (0) 4 seconds ago                       some-running-container 
# 指定したコンテナのstatusが<Exited>となっている点を確認する 
 
その後、停止済みのコンテナを実際に削除

docker container rm some-running-container or 60eb477a4e15 
# コンテナ名あるいはコンテナIDで削除 


docker起動時に任意のコマンドを指定する場合


(1)dockerコマンド入力時に最後にコンテナ内で実行するコマンドを指定

docker run -ti --name  some-running-shell centos /bin/bash 
# dockerコマンドの最後に当該のコンテナ内で実行したいコマンドを指定する 
実行例

C:\Users\root\development_php7>docker run -ti --name  some-running-shell centos /bin/bash 
Unable to find image 'centos:latest' locally 
latest: Pulling from library/centos 
aeb7866da422: Pull complete 
Digest: sha256:67dad89757a55bfdfabec8abd0e22f8c7c12a1856514726470228063ed86593b 
Status: Downloaded newer image for centos:latest 
[root@f2f08a3dcb76 /]# 


(2)ログイン中のコンテナ内から一時的に抜ける

ctrl + P -> ctrl + Q

を実行すると、実行中コンテナシェルをぬける。

この状態で

docker container ls -a # と実行すると 
以下、実行例

C:\Users\root\development_php7>docker container ls -a 
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES 
f2f08a3dcb76        centos              "/bin/bash"         7 minutes ago       Up 7 minutes                            bash_shell 
上記の用にぬけたコンテナのSTATUSがUpの状態になっていることを確認


(3)離脱したコンテナへ再度ログインする

docker container attach <コンテナ名> 
このコマンドは既に/bin/bashというコマンドを実行中のプロセスへつなぐ模様

[root@f2f08a3dcb76 /]# ps aux 
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND 
root         1  0.0  0.1  11828  2968 pts/0    Ss   02:10   0:00 /bin/bash 
root        14  0.0  0.1  51716  3524 pts/0    R+   02:23   0:00 ps aux 


(4)コンテナ起動時のプロセスには触れずに新規で任意の起動中コンテナへシェルログインする

docker container exec -ti some-running-container /bin/bash 
上記の用にコマンドを実行すると

[root@f2f08a3dcb76 /]# ps aux 
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND 
root         1  0.0  0.1  11828  3056 pts/0    Ss+  02:10   0:00 /bin/bash 
root        15  0.4  0.1  11828  2852 pts/1    Ss   02:23   0:00 /bin/bash 
root        28  0.0  0.1  51716  3496 pts/1    R+   02:24   0:00 ps aux 
このように/bin/bashという同様のコマンドで別プロセスが立ち上がっているのがわかる

この際ログインシェル上で< ctrl + P -> ctrl + Q > を実行してシェルを抜けると

次に同様のコマンド

docker container exec -ti some-running-container /bin/bash 
上記を使ってシェルログインすると

[root@f2f08a3dcb76 /]# ps aux 
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND 
root         1  0.1  0.1  11828  2956 pts/0    Ss+  02:29   0:00 /bin/bash 
root        14  0.0  0.1  11828  2888 pts/1    Ss+  02:29   0:00 /bin/bash 
root        34  0.4  0.1  11828  2952 pts/2    Ss   02:30   0:00 /bin/bash 
root        47  0.0  0.1  51716  3504 pts/2    R+   02:30   0:00 ps aux 
プロセスが新規で立ち上がる


(5)起動中のコンテナを停止する

コンテナシェルからログアウト後

CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES 
f2f08a3dcb76        centos              "/bin/bash"         30 minutes ago      Up 11 minutes                           bash_shell 
コンテナが起動中なのを確認する

その後

docker container stop bash_shell  
docker container ls -a 
 
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS                            PORTS               NAMES 
f2f08a3dcb76        centos              "/bin/bash"         31 minutes ago      Exited (137) About a minute ago                       bash_shell 
 
# 任意のコンテナのSTATUSが<Exited>となっている点を確認 


(6)停止したコンテナを削除する

docker container rm bash_shell 


dockerイメージに対するコマンド


(1)ダウンロード済みのイメージ一覧

docker images -a 
 
# 実行例 
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE 
nginx               latest              be1f31be9a87        8 days ago          109MB 


(2)任意のdockerイメージの削除

docker rmi 6bb891430fb6 75835a67d134 ... 
# コマンドオプションのコンテナIDはスペース区切りで複数指定可能 

コメント

このブログの人気の投稿

投稿時間:2021-06-17 22:08:45 RSSフィード2021-06-17 22:00 分まとめ(2089件)

投稿時間:2021-06-20 02:06:12 RSSフィード2021-06-20 02:00 分まとめ(3871件)

投稿時間:2021-06-17 05:05:34 RSSフィード2021-06-17 05:00 分まとめ(1274件)