2025/05/31 Updated by

Docker Container として Ubuntu 24.04LTS を動かす (1)

最も簡単な例


[Up] Japanese English
このページ内での表記:
「ホストOSの対話環境」は背景色を黄色(lightyellow)で表す。
「Conainer 内の root 権限の対話環境」は背景色を水色(azure)であらわす。
「Conainer 内の一般ユーザ権限の対話環境」は背景色を赤色(#ffeeee)であらわす。
「他のPCの対話環境」は紫色(#eeeeff)で表す。

実験環境


公式から Ubuntu の Docker Image を取得する。

  1. Docker Hub の Web サイトで公開されている Ubuntu のバージョンを確認する。
  2. https://hub.docker.com/_/ubuntu



  3. 現時点(2025.05.31)ではUbuntu の最新版 LTS (Long Term Support) は 24.04 である。今回はこのバージョン ubuntu:24.04を利用する。
  4. (Optional) 公式 Image を取得する。
  5. $ docker pull ubuntu:24.04  
    24.04: Pulling from library/ubuntu
    0622fac788ed: Already exists
    Digest: sha256:6015f66923d7afbc53558d7ccffd325d43b4e249f41a6e93eef074c9505d2233
    Status: Downloaded newer image for ubuntu:24.04
    
    (注意)"docker run" コマンドは、手元に image がない場合は自動的に pull してくれる。 ここではわかりやすさを優先して明示的に Image を pull しておく。
  6. 手元に存在する Docker Image の一覧を表示する。
  7. $ docker image ls  
    repository   tag       image id       created       size
    ubuntu       24.04     a0e45e2ce6e6   4 weeks ago   78.1mb
    

新しい Container を生成して起動する

  1. (ホストOSの対話環境で) Container を生成してシェル /bin/bash を起動する。
  2. $ docker run --name ubuntu24a -i -t ubuntu:24.04 /bin/bash
    # ← コンテナ内の対話環境 (root 権限の bash)
    起動オプション
  3. (Container 内の root 権限の対話環境で) ユーザ名を表示する。
  4. # whoami  
    root
    
  5. (Container 内の root 権限の対話環境で) カレント・ワーキング・ディレクトリを表示する。
  6. # pwd  
    /
    
  7. (Container 内の root 権限の対話環境で) ファイルの一覧を表示する。
  8. # ls  
    bin  boot  dev  etc  home  lib  lib64  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  var
    
  9. (Container 内の root 権限の対話環境で) 「コントロール+P」 キーと 「コントロール+Q」 キーを順に押すと、コンテナを動作させたままホストOSに戻る。
  10. $ ^P ^Q ← 「コントロール+P」キーと「コントロール+Q」キーを順に押す
    # ← ホストOSとの対話環境に戻る
  11. (ホストOSの対話環境で) 動作中のコンテナの一覧を表示する。ubuntu24a が動作中であることがわかる。
  12. $ docker container ls 
    CONTAINER ID   IMAGE          COMMAND       CREATED          STATUS          PORTS     NAMES
    011e2a5be0ac   ubuntu:24.04   "/bin/bash"   44 minutes ago   Up 44 minutes             ubuntu24a
    
  13. (ホスト OS の対話環境で) Container のログを調べる。
  14. $ docker logs ubuntu24a 
    # whoami                       ← Container の対話環境の入出力はログに残っている
    root
    # pwd
    /
    # ls
    bin  boot  dev  etc  home  lib  lib64  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  var
    $ 
  15. (ホストOSの対話環境で) ホストOSの現在の対話環境を、動作中のコンテナ内の対話環境に接続 (attach) する。
  16. $ docker attach ubuntu24a
    # ← コンテナ内の対話環境 (root 権限の bash)
  17. (Container 内の root 権限の対話環境で) 実行中の対話環境 (bash) を終了すると、ホストOSの対話環境に戻る。
  18. # exit ← Container の対話環境を終了する exit
    $ ← ホストOSの対話環境に戻る
  19. (ホストOSの対話環境で) 動作中の Container の一覧を表示する。ubuntu24a は表示されないので、実行中ではないことがわかる。
  20. $ docker container ls 
    CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES
    
  21. (ホストOSの対話環境で) 停止中も含めて Container の一覧を表示する。ここでは ubuntu24a が表示されるので、停止中であることがわかる。
  22. $ docker container ls -a  
    CONTAINER ID   IMAGE          COMMAND       CREATED       STATUS                     PORTS     NAMES
    011e2a5be0ac   ubuntu:24.04   "/bin/bash"   3 hours ago   Exited (0) 4 minutes ago             ubuntu24a
    

停止中の Container を起動する

  1. (ホストOSの対話環境で) docker start コマンドで停止中の Container を起動する。
  2. $ docker start ubuntu24a  
    ubuntu24a
    

    (注意) docker start -i のように -i オプションを指定すると、最初から Container 内の対話環境とつながる。

  3. (ホストOSの対話環境で) 起動中の Conntainer の一覧を表示して、起動したことを確認する。
  4. $ docker container ls  >
    CONTAINER ID   IMAGE          COMMAND       CREATED        STATUS          PORTS     NAMES
    75496fff6f39   ubuntu:24.04   "/bin/bash"   3 hours ago    Up 10 minutes             ubuntu24a
    
  5. (「ホストOSの対話環境」を「Container内の root 権限の対話環境」へつなぐ) 実行中の Container の対話環境にアタッチする。
  6. $ docker attach ubuntu24a
    # ← Container 内の対話環境とつながる
  7. Container の対話環境でいろいろコマンドを動作させる。
  8. (「ホストOSの対話環境」と「Container内の root 権限の対話環境」への接続を切る) Container の対話環境から抜けるには 「コントロール+P」と「コントロール+Q」を順にタイプする。
  9. $ ^P ^Q
    # ← ホスト OS の対話環境に戻る

(Optional)動作中の Container を停止して削除する

  1. (ホストOSの対話環境で) 実行中の Container は "docker stop" コマンドで停止できる。
  2. $ docker container stop ubuntu24a  
    ubuntu24a
    
  3. (ホストOSの対話環境で) 停止中の Container は "docker container rm" コマンドで消去できる。
  4. $ docker container rm ubuntu24a   
    ubuntu24a
    
  5. (ホストOSの対話環境で) Container の一覧を表示することで、ubuntu24a が消去されたことを確認する。
  6. $ docker container ls -a    
    CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES