やったこと
起動中のDockerコンテナに、別タブから接続します。
確認環境
$ docker --version
Docker version 19.03.13, build 4484c46d9d
調査
使うイメージ
$ docker image ls | grep ruby | grep 2.5
ruby 2.5 875fc97a76ff 2 weeks ago 843MB
コンテナ起動
タブ1
$ docker container run \
> -d \
> --name abc_container \
> -h host1 \
> -it \
> ruby:2.5 \
> /bin/bash
c5fd47fd970256a98c9fb9ed1c95f68e5129a3571e0a874b04a5ebbcb6d03b04
$ docker container ls -a | grep abc
c5fd47fd9702 ruby:2.5 "/bin/bash" 9 seconds ago Up 8 seconds abc_container
docker container exec で接続
タブ2
$ docker container exec -it abc_container bash
root@host1:/#
docker container --help
より
exec Run a command in a running container
docker container attach で接続
タブ3
$ docker container attach abc_container
root@host1:/#
docker container --help
より
attach Attach local standard input, output, and error streams to a running container
おまけ
status が Exitのコンテナを削除する
$ docker container ls -a | grep container | grep ruby
28b447b3bbdc ruby:2.5 "/bin/bash" 4 minutes ago Exited (0) About a minute ago abc_container
eb715bbaf632 ruby:2.5 "/bin/bash" 10 minutes ago Exited (130) 10 minutes ago tmp01_container
$ docker container prune
WARNING! This will remove all stopped containers.
Are you sure you want to continue? [y/N] y
Deleted Containers:
28b447b3bbdc414b288d2766bf87f2f41349d694b817ec6a5f650428b92426ac
eb715bbaf6322a08b6f591090bc9d70498b4832a6b0301a4297bff3425575627
Total reclaimed space: 10B
最後に
docker container exec
と docker container attach
は何が違うのでしょうか。
docker container attach
から exit すると別タブも exit されることだけ確認できました。
exec はコマンドを渡せるので、bashで入ったり、zshで入ったり出来るようになるの良いのかもしれませんね。