このページで解説している内容は、以下の YouTube 動画の解説で見ることができます。

DockerでUbuntu22.04を動かしてみる

ここでは、DockerでUbuntu22.04を動かしてみます。

Ubuntuとは

簡単にUbuntuについて解説します。

 UbuntuはLinuxのディストリビューションであり、人気と実績を兼ね備えたOSです。カノニカル社からサポートを受けており、半年ごとに最新版をリリースしています。また、Ubuntuは「他者への思いやり」という意味を持つアフリカの言葉であり、誰にでも使いやすいOSを提供することを目指しています。

 Ubuntuは、一般のデスクトップPC用OSとして知名度を高めてきましたが、近年はサーバーOSとしても注目されており、人気を集めています。UbuntuはLinuxのディストリビューションであり、オープンソースでありながら安定性やセキュリティを兼ね備えており、多くのユーザーに利用されています。特にUbuntuは、誰にでも使いやすいOSを提供することをコンセプトに開発されており、デスクトップ環境としても人気が高いのが特徴です。

 また、UbuntuはDebianから派生しており、Ubuntuの開発はDebianのソースコードをベースに行われています。Debianはソフトウェアの品質を重視し、ソースコードが公開されており、改変や再配布が自由であることが特徴です。UbuntuはDebianの品質を受け継ぎつつ、より使いやすいOSを提供することを目指しています。この関係から、UbuntuはDebianとの互換性が高く、安定性やセキュリティを重視しつつも使いやすさを追求しています。

Ubuntu22.04イメージの調査

 Docker Hub に Ubuntu22.04 のイメージがあるのか、そして、あった場合、どのタグを指定すればよいのかを調査しておきます。

・Docker Hub のサイトへアクセスします。

https://hub.docker.com/

・検索窓に「ubuntu」と入力して検索します。

・「ubuntu」をクリックします。

・「Tags」タブをクリックして、検索窓に「22.04」と入力します。

「Ubuntu22.04」イメージがあることが確認できます。


 このように、pull するイメージがDocker Hub に存在するのか、そして、pull する際にしているタグを事前に調査しておきます。

Ubuntu22.04イメージのダウンロード


Ubuntu22.04イメージをDocker Hub からダウンロードします。

・「docker image pull ubuntu:22.04」コマンドを実行します。
docker image pullubuntu:22.04
イメージのダウンロードイメージ名22.04 タグ(バージョン)
タグを省略すると最新版(latest) が取得される。
docker image pull コマンド
PS C:\Users\joeac> docker image pull ubuntu:22.04
22.04: Pulling from library/ubuntu
bccd10f490ab: Pull complete
Digest: sha256:77906da86b60585ce12215807090eb327e7386c8fafb5402369e421f44eff17e
Status: Downloaded newer image for ubuntu:22.04
docker.io/library/ubuntu:22.04

ダウンロードしたイメージを確認します。

・「docker image ls」コマンドを実行します。

3行目にタグが「22.04」のubuntuイメージがあることが確認できます。

PS C:\Users\joeac> docker image ls
REPOSITORY   TAG       IMAGE ID       CREATED       SIZE
ubuntu       22.04     ca2b0f26964c   10 days ago   77.9MB
nginx        latest    e4720093a3c1   3 weeks ago   187MB
httpd        latest    2776f4da9d55   7 weeks ago   167MB

コンテナの作成と実行

コンテナの作成と実行を行うには、「docker container run」コマンドを使います。

docker container run –name ubuntu22.04 -it -d ubuntu:22.04

docker container run–name ubuntu22.04 -it -dubuntu:22.04
コンテナの作成と実行コンテナ名の指定オプションイメージ名タグ
docker container run コマンド
・オプションの意味

 「-it」オプションを付けることで ターミナルでコンテナを実行することができるようになります。このコマンドに付けておく「お約束事」だと覚えておきましょう。

オプション説明
-it-i オプションと -t オプションを合わせたもの。
オプションは並べた表記ができる。
-i標準入力を開く。
-ttty を割り当てる。
tty とは、標準入出力となっている端末デバイスのこと。
仮想コンソールは「/dev/tty1」
-itターミナルでコンテナを実行する。
-dデタッチモードを指定する。バックグラウンドでコンテナを起動します。
オプションの意味

・「docker container run –name ubuntu22.04 -it -d ubuntu:22.04」コマンドを実行します。

PS C:\Users\joeac> docker container run --name ubuntu22.04 -it -d ubuntu:22.04
05ccc53d8944acfecf9b8d3e8853565c91d92f35bec7eca14de4eef4d33a21fb

コンテナの動作状況の確認

・「docker container ls -a」コマンドを実行します。

 3行目に「ubuntu22.04」コンテナがあります。STATUS列から、このイメージが実行中であることが確認できます。

PS C:\Users\joeac> docker container ls -a
CONTAINER ID   IMAGE          COMMAND                   CREATED          STATUS                    PORTS     NAMES
05ccc53d8944   ubuntu:22.04   "/bin/bash"               34 minutes ago   Up 34 minutes                       ubuntu22.04
9dcede2f3b1f   httpd          "httpd-foreground"        18 hours ago     Exited (0) 18 hours ago             webserver3
facb8262f20f   nginx          "/docker-entrypoint.…"   29 hours ago     Exited (0) 23 hours ago             webserver2
18cbe71fe4a8   nginx          "/docker-entrypoint.…"   29 hours ago     Exited (0) 29 hours ago             webserver1

実行中のコンテナへの接続

 実行中(稼働中)のコンテナに接続するコマンドには「docker exec」コマンドと「docker container attach」コマンドがあります。

「docker exec」コマンド

まず、「docker exec」コマンドから試してみます。

・「docker exec -it ubuntu22.04 echo “Hello World”」コマンドを実行します。
docker exec -itubuntu22.04echo “Hello World”
稼働中のコンテナへの接続オプションコンテナの指定echo コマンド
docker container run コマンド
PS C:\Users\joeac> docker exec -it ubuntu22.04 echo "Hello World"
Hello World   # コマンドの実行結果

2行目の「Hello World」の出力は、Linuxのechoコマンドの出力です。

コンテナの動作状況を確認する。
・「docker container ls -a」コマンドを実行します。
PS C:\Users\joeac> docker container ls -a
CONTAINER ID   IMAGE          COMMAND                   CREATED        STATUS                    PORTS     NAMES
05ccc53d8944   ubuntu:22.04   "/bin/bash"               2 hours ago    Up 2 hours                          ubuntu22.04
9dcede2f3b1f   httpd          "httpd-foreground"        19 hours ago   Exited (0) 19 hours ago             webserver3
facb8262f20f   nginx          "/docker-entrypoint.…"   30 hours ago   Exited (0) 24 hours ago             webserver2
18cbe71fe4a8   nginx          "/docker-entrypoint.…"   30 hours ago   Exited (0) 30 hours ago             webserver1

 3行目に注目します。「ubuntu22.04」コンテナがあります。STATUS列から、このイメージが稼働していることが確認できます。「docker exec」コマンドを実行してもコンテナは停止しないことが分かります。

「docker container attach <コンテナ名>」コマンド

次に「docker container attach」コマンドを試します。

・「docker container attach ubuntu22.04」コマンドを実行します。

コンテナ名には「ubuntu22.04」を指定します。

PS C:\Users\joeac> docker container attach ubuntu22.04
root@05ccc53d8944:/#  ←ubuntu22.04のターミナルに接続される

ubuntu22.04のターミナルに接続されます。

ターミナルに接続されるので、Linuxのコマンドが使えます。

・「ls」コマンドを実行してみます。
root@05ccc53d8944:/# ls
bin   dev  home  lib32  libx32  mnt  proc  run   srv  tmp  var
boot  etc  lib   lib64  media   opt  root  sbin  sys  usr
root@05ccc53d8944:/#

Linuxのコマンドが使えることが確認できました。

・「docker container attach」でのコンテナの接続を終了させる。

「docker container attach」コマンドでのコンテナの接続を終了させるには、「exit」コマンドを使用します。

・「exit」コマンドを実行します。
root@05ccc53d8944:/# exit
exit
PS C:\Users\joeac>

コンテナへの接続が終了します。

コンテナの動作状況を確認する。
・「docker container ls -a」コマンドを実行します。
PS C:\Users\joeac> docker container ls -a
CONTAINER ID   IMAGE          COMMAND                   CREATED        STATUS                     PORTS     NAMES
05ccc53d8944   ubuntu:22.04   "/bin/bash"               2 hours ago    Exited (0) 5 minutes ago             ubuntu22.04
9dcede2f3b1f   httpd          "httpd-foreground"        20 hours ago   Exited (0) 20 hours ago              webserver3
facb8262f20f   nginx          "/docker-entrypoint.…"   31 hours ago   Exited (0) 25 hours ago              webserver2
18cbe71fe4a8   nginx          "/docker-entrypoint.…"   31 hours ago   Exited (0) 31 hours ago              webserver1

 3行目に注目します。「ubuntu22.04」コンテナがあります。STATUS列から、このイメージがExited(停止)していることが分かります。「docker container attach」コマンドでは「exit」するとコンテナが停止することが分かります。

コンテナを再実行する。

コンテナを再実行させるには、「docker start」コマンドを使用します。

以下のコマンドを実行します。

  • 「docker start ubuntu22.04」コマンド
  • 「docker container attach ubuntu22.04」コマンド

接続を確認したら「exit」して接続を終了させます。

PS C:\Users\joeac> docker start ubuntu22.04
ubuntu22.04
PS C:\Users\joeac> docker container attach ubuntu22.04
root@05ccc53d8944:/# exit
exit
PS C:\Users\joeac>