Docker HubのUbuntuを使用して対話型でDockerのコンテナを利用してみます。
記事の目次
- 1 Ubuntuのコンテナをダウンロードしてbashを実行する!(docker run -it)
- 2 Ubuntuのイメージを確認する!(docker image ls)
- 3 Ubuntuのbashを実行したコンテナを確認する!(docker container ps -a)
- 4 bashを実行するコンテナをオプション指定なしで実行する!(docker container start)
- 5 bashを実行するコンテナにアタッチして実行する!(docker container start -a)
- 6 bashを実行するコンテナにターミナルのオプションを追加して実行する!(docker container start -ai)
- 7 実行中のコンテナにアクセスしてコマンドを実行する!(docker container exec)
- 8 bash以外のコマンドを実行してみる!(docker container run)
- 9 コンテナをまとめて削除する!(docker container prune)
- 10 イメージをまとめて削除する!(docker image prune -a)
- 11 おわりに
- 12 参考情報
- 13 関連記事
- 14 関連書籍(Amazon)
Ubuntuのコンテナをダウンロードしてbashを実行する!(docker run -it)
$ docker container run -it ubuntu bash Unable to find image 'ubuntu:latest' locally latest: Pulling from library/ubuntu 6e3729cf69e0: Pull complete Digest: sha256:27cb6e6ccef575a4698b66f5de06c7ecd61589132d5a91d098f7f3f9285415a9 Status: Downloaded newer image for ubuntu:latest root@a11d8355444b:/# ps -ef UID PID PPID C STIME TTY TIME CMD root 1 0 0 00:10 pts/0 00:00:00 bash root 9 1 0 00:11 pts/0 00:00:00 ps -ef root@a11d8355444b:/# exit exit
Ubuntuのイメージを確認する!(docker image ls)
今回は、コンテナのイメージのバージョンを指定しなかったので、TAGがlatestの最新版がダウンロードされたことがわかります。
$ docker image ls REPOSITORY TAG IMAGE ID CREATED SIZE ubuntu latest 6b7dfa7e8fdb 2 weeks ago 77.8MB
Ubuntuのbashを実行したコンテナを確認する!(docker container ps -a)
今回は、コンテナ名を指定しなかったので、自動でコンテナ名が割り当てられ、「crazy_perlman」で作成されたことがわかります。
$ docker container ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES a11d8355444b ubuntu "bash" 37 seconds ago Exited (0) 14 seconds ago crazy_perlman
bashを実行するコンテナをオプション指定なしで実行する!(docker container start)
オプションの機能確認の目的で、オプション指定なしで実行してみます。コマンドプロンプトも表示されません。バックグランドで実行されているような状態なので、「stop」コマンドで停止させます。
$ docker container start crazy_perlman crazy_perlman $ docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES a11d8355444b ubuntu "bash" 8 minutes ago Up 3 seconds crazy_perlman $ docker container stop crazy_perlman crazy_perlman $ docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
bashを実行するコンテナにアタッチして実行する!(docker container start -a)
オプションの機能確認の目的で、コンテナニアタッチするオプションを指定して実行してみます。コマンドプロンプトは表示されましたが、コマンド自体は受け付けない状態になっています。
$ docker container ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES $ docker container start -a crazy_perlman root@a11d8355444b:/# ps
別のターミナルから、「stop」コマンドで停止させます。
$ docker container stop crazy_perlman crazy_perlman
bashを実行するコンテナにターミナルのオプションを追加して実行する!(docker container start -ai)
bashのコンテナにターミナルのオプションを追加して実行してみます。コマンドが受付可能な状態で起動できました。
$ docker container start -ai crazy_perlman root@a11d8355444b:/# ps PID TTY TIME CMD 1 pts/0 00:00:00 bash 9 pts/0 00:00:00 ps root@a11d8355444b:/# exit exit
実行中のコンテナにアクセスしてコマンドを実行する!(docker container exec)
「docker container exec」コマンドを使用すると実行中のコンテナ内のコマンドを実行することができます。
$ docker container exec rcrazy_perlman df -h Filesystem Size Used Avail Use% Mounted on overlay 17G 5.7G 12G 34% / tmpfs 64M 0 64M 0% /dev shm 64M 0 64M 0% /dev/shm /dev/mapper/rl-root 17G 5.7G 12G 34% /etc/hosts tmpfs 886M 0 886M 0% /proc/asound tmpfs 886M 0 886M 0% /proc/acpi tmpfs 886M 0 886M 0% /proc/scsi tmpfs 886M 0 886M 0% /sys/firmware
bash以外のコマンドを実行してみる!(docker container run)
Ubuntuのバージョンを表示してみます。
$ docker container run ubuntu cat /etc/issue Ubuntu 22.04.1 LTS \n \l
コンテナをまとめて削除する!(docker container prune)
「docker run」を繰り返すとコンテナが溜まっていきます。不要になったら、まとめて消します。
$ docker container ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 23582ef155b1 ubuntu "cat /etc/issue" 2 minutes ago Exited (0) 2 minutes ago keen_heisenberg a11d8355444b ubuntu "bash" About an hour ago Exited (137) 4 minutes ago crazy_perlman $ docker container prune WARNING! This will remove all stopped containers. Are you sure you want to continue? [y/N] y Deleted Containers: 23582ef155b14fb3530bec634fd3bc84d0469e16a28b4aa0ba4c9e1d1ec512a7 a11d8355444b64aa8a25da5e966ee4ac98b3525e0971ad8aafe84d78b54f48d9 Total reclaimed space: 20B $ docker container ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
イメージをまとめて削除する!(docker image prune -a)
イメージについてもまとめて削除することができます。
$ docker image prune -a WARNING! This will remove all images without at least one container associated to them. Are you sure you want to continue? [y/N] y Deleted Images: untagged: ubuntu:latest untagged: ubuntu@sha256:27cb6e6ccef575a4698b66f5de06c7ecd61589132d5a91d098f7f3f9285415a9 deleted: sha256:6b7dfa7e8fdbe18ad425dd965a1049d984f31cf0ad57fa6d5377cca355e65f03 deleted: sha256:6515074984c6f8bb1b8a9962c8fb5f310fc85e70b04c88442a3939c026dbfad3 Total reclaimed space: 77.8MB $ docker image ls REPOSITORY TAG IMAGE ID CREATED SIZE
おわりに
Ubuntuのコンテナを使用して、Dockerのコンテナを対話型で使用するケースを試してました。
参考情報
関連記事
関連書籍(Amazon)