Docker 停止中 or 稼働中の Ubuntu コンテナの Bash に入る - docker start attach
why
Docker で Ubuntu をプロセス関連の学習のために動かしたかった
コンテナのリスト表示
docker ps または docker container ls
で起動中のコンテナのリストを表示できる。
docker container ls CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 5a8638528c62 ubuntu "/bin/bash" 21 hours ago Up 21 hours goofy_mclaren 84a68690ab25 adminer "entrypoint.sh docke…" 5 months ago Up 2 weeks 0.0.0.0:8080->8080/tcp docker-mysql_adminer_1 632563fd4842 mysql "docker-entrypoint.s…" 5 months ago Up 2 weeks 3306/tcp, 33060/tcp docker-mysql_db_1
Ubuntu と adminer, mysql のコンテナが動いていることを確認
動いているコンテナの bash に入る
docker attach YourContainerID
で起動させた状態のコンテナの bash に入れる
実際に売ってみる
docker container attach 5a8638528c62 root@5a8638528c62:/#
コンテナ ID 5a8638528c62
の bash に入れた
コンテナを止める
exit で bash から離れるとコンテナは停止する
docker ps -a でみると止まっている。
停止しているコンテナを動かす - docker start
docker start YourContainerID で停止しているコンテナが動かせる
docker ps -a | grep ub 5a8638528c62 ubuntu "/bin/bash" 21 hours ago Exited (0) 35 seconds ago goofy_mclaren 6063ce36303c ubuntu "/bin/bash" 22 hours ago Exited (0) 22 hours ago gallant_easley 10075622af77 ubuntu "bash" 6 months ago Exited (0) 6 months ago elegant_euler
docker ps -a で止まっているコンテナをリスト表示して
docker start 5a8638528c62 5a8638528c62
docker start で任意のコンテナを 裏で動かす
これで確認すると
docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 5a8638528c62 ubuntu "/bin/bash" 21 hours ago Up 7 seconds goofy_mclaren 84a68690ab25 adminer "entrypoint.sh docke…" 5 months ago Up 2 weeks 0.0.0.0:8080->8080/tcp docker-mysql_adminer_1 632563fd4842 mysql "docker-entrypoint.s…" 5 months ago Up 2 weeks 3306/tcp, 33060/tcp docker-mysql_db_1
ID 5a8638528c62 の ubuntu が動いている
これで、先ほどのように attach で入れる
まとめ
docker ps -a
で現在動いているコンテナを表示し、使いたいコンテナが動いていたら
docker attach YourContainerID
でそのコンテナの bash に入り、作業する
使いたいコンテナが動いていない場合は
docker ps
で止まっているコンテナを表示し、使いたいコンテナがあったら
docker start YourContainerID
でそのコンテナを動いている状態にして
docker attach YourContainerID
で動いているコンテナに入り、bash で作業する
実践
docker start 5a8638528c62 5a8638528c62 RYOs-MBP:~ kaede$ docker attach 5a8638528c62 root@5a8638528c62:/# ls bin boot dev etc home lib lib32 lib64 libx32 media mnt opt proc root run sbin srv sys tmp usr var root@5a8638528c62:/# touch 0408.txt root@5a8638528c62:/# ls 0408.txt bin boot dev etc home lib lib32 lib64 libx32 media mnt opt proc root run sbin srv sys tmp usr var root@5a8638528c62:/# exit exit RYOs-MBP:~ kaede$ docker start 5a8638528c62 5a8638528c62 RYOs-MBP:~ kaede$ docker attach 5a8638528c62 root@5a8638528c62:/# ls 0408.txt bin boot dev etc home lib lib32 lib64 libx32 media mnt opt proc root run sbin srv sys tmp usr var root@5a8638528c62:/# exit
5a86 の停止しているコンテナを動かし、
インして
0408.txt を作り
出て
再び 5a86 の停止しているコンテナを動かし
インして
0408.txt が残っているのを確認した