#環境
- MBP
- Catalina
- DockerForMac
#Ubuntuのイメージ取得~コンテナの起動
これだけでUbuntuが起動しました。
実際に利用するときは「--name」でコンテナ名を明示的に指定しましょう。
尚、/bin/bash は省略しても問題ありません。
-itを忘れるとコンテナを起動してもUbuntuの操作が出来ませんので、忘れないように注意して下さい。
% docker run -it ubuntu /bin/bash
Unable to find image 'ubuntu:latest' locally
latest: Pulling from library/ubuntu
5d3b2c2d21bb: Already exists
3fc2062ea667: Already exists
75adf526d75b: Already exists
Digest: sha256:b4f9e18267eb98998f6130342baacaeb9553f136142d40959a1b46d6401f0f2b
Status: Downloaded newer image for ubuntu:latest
root@3e393476b56a:/# cat /etc/os-release
NAME="Ubuntu"
VERSION="20.04.2 LTS (Focal Fossa)"
ID=ubuntu
ID_LIKE=debian
PRETTY_NAME="Ubuntu 20.04.2 LTS"
VERSION_ID="20.04"
HOME_URL="https://www.ubuntu.com/"
SUPPORT_URL="https://help.ubuntu.com/"
BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/"
PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy"
VERSION_CODENAME=focal
UBUNTU_CODENAME=focal
root@3e393476b56a:/# ls
bin boot dev etc home lib lib32 lib64 libx32 media mnt opt proc root run sbin srv sys tmp usr var
#ホストOSに切り替える
Ctrl + p Ctrl + q を押すとホストに切り替えられます。
#ホストからコンテナの状態を確認する
STATUSがUPになっているのが確認出来ます。
% docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
3e393476b56a ubuntu "/bin/bash" 2 minutes ago Up 2 minutes optimistic_easley
#タグの確認
タグ名を指定しなかったので、自動でlatestタグのイメージが取得されています。
% docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
ubuntu latest 4dd97cefde62 8 days ago 72.9MB
#Ubuntuに操作を戻す(attachする)
% docker attach 3e
root@3e393476b56a:/# cat /etc/os-release
NAME="Ubuntu"
VERSION="20.04.2 LTS (Focal Fossa)"
ID=ubuntu
ID_LIKE=debian
PRETTY_NAME="Ubuntu 20.04.2 LTS"
VERSION_ID="20.04"
HOME_URL="https://www.ubuntu.com/"
SUPPORT_URL="https://help.ubuntu.com/"
BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/"
PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy"
VERSION_CODENAME=focal
UBUNTU_CODENAME=focal
root@3e393476b56a:/#
このようにコンテナIDの最初一部を指定するだけでコンテナを指定出来る。
尚、これはコンテナを削除する docker rm などでも同様に使える。
#再度ホストに戻る
root@3e393476b56a:/# exit
exit
% docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
3e393476b56a ubuntu "/bin/bash" 5 minutes ago Exited (0) 10 seconds ago optimistic_easley
今度はExitでプロセスを終了させて抜けた為、STATUSがExitedとなり、コンテナの動作が停止していることが確認出来る。
#停止したコンテナを削除する
コンテナはコンテナIDの頭2文字で指定している。
% docker rm 3e
3e
#dockerイメージを削除する
% docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
ubuntu latest 4dd97cefde62 8 days ago 72.9MB
% docker rmi ubuntu
Untagged: ubuntu:latest
Untagged: ubuntu@sha256:b4f9e18267eb98998f6130342baacaeb9553f136142d40959a1b46d6401f0f2b
Deleted: sha256:4dd97cefde62cf2d6bcfd8f2c0300a24fbcddbe0ebcd577cc8b420c29106869a
Deleted: sha256:95bc1f83306cc7ebaa959492929d6624b0cc1bb6ba61be1cd04fed7d39b002fc
Deleted: sha256:a0fcf305193749a4fe8c9da074c4781a0f1e63f2c5b5a979a88597ada5c74645
Deleted: sha256:aeb3f02e937406fb402a926ce5cebc7da79b14dbcb4f85a5ce0e3855623cec80
%
#execコマンドについて
通常コンテナ内でシェルを操作していて、exitを実行すると下記のようにコンテナは終了状態となり、停止してしまう。
これを避けるために、docker execコマンドがある。
% docker run -it ubuntu
Unable to find image 'ubuntu:latest' locally
latest: Pulling from library/ubuntu
5d3b2c2d21bb: Pull complete
3fc2062ea667: Pull complete
75adf526d75b: Pull complete
Digest: sha256:b4f9e18267eb98998f6130342baacaeb9553f136142d40959a1b46d6401f0f2b
Status: Downloaded newer image for ubuntu:latest
root@7c9389b7d90e:/#
root@7c9389b7d90e:/#
root@7c9389b7d90e:/#
root@7c9389b7d90e:/# exit
exit
% docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
7c9389b7d90e ubuntu "/bin/bash" About a minute ago Exited (0) 19 seconds ago hungry_newton
#execコマンドでコンテナを操作する
% docker exec -it 7c /bin/bash
root@7c9389b7d90e:/#
root@7c9389b7d90e:/# cat /etc/os-release
NAME="Ubuntu"
VERSION="20.04.2 LTS (Focal Fossa)"
ID=ubuntu
ID_LIKE=debian
PRETTY_NAME="Ubuntu 20.04.2 LTS"
VERSION_ID="20.04"
HOME_URL="https://www.ubuntu.com/"
SUPPORT_URL="https://help.ubuntu.com/"
BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/"
PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy"
VERSION_CODENAME=focal
UBUNTU_CODENAME=focal
root@7c9389b7d90e:/#
#exitで抜けてコンテナのSTATUSを確認する
このようにSTATUSがUPのままで起動状態であることが確認できる。
root@7c9389b7d90e:/# exit
exit
% docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
7c9389b7d90e ubuntu "/bin/bash" 4 minutes ago Up About a minute hungry_newton
#コンテナを停止する
% docker stop 7c
7c
#停止中のコンテナをまとめて削除する(docker container prune)
% docker container prune
WARNING! This will remove all stopped containers.
Are you sure you want to continue? [y/N] y
Deleted Containers:
7c9389b7d90e9bcd0e8eedc74c8eb699c9fac32ae5603189930ff81acbe4d67d
Total reclaimed space: 31B
% docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
#docker imageの削除
% docker rmi ubuntu
Untagged: ubuntu:latest
Untagged: ubuntu@sha256:b4f9e18267eb98998f6130342baacaeb9553f136142d40959a1b46d6401f0f2b
Deleted: sha256:4dd97cefde62cf2d6bcfd8f2c0300a24fbcddbe0ebcd577cc8b420c29106869a
Deleted: sha256:95bc1f83306cc7ebaa959492929d6624b0cc1bb6ba61be1cd04fed7d39b002fc
Deleted: sha256:a0fcf305193749a4fe8c9da074c4781a0f1e63f2c5b5a979a88597ada5c74645
Deleted: sha256:aeb3f02e937406fb402a926ce5cebc7da79b14dbcb4f85a5ce0e3855623cec80