2025/05/31 Updated by

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

新規ユーザを追加する


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

実験環境


Container 内に新規ユーザを追加する

Container 内に追加する新規ユーザの情報は以下の通り。
グループ名guest
グループID3000
ユーザ名guest
ユーザID3000

Container を生成+起動する

  1. (ホストOSの対話環境で) Container を生成してシェル /bin/bash を起動する。
  2.   
    $ docker run --name ubuntu24b \ -v /home/docker/ubuntu24b:/mnt/hostos \ -i -t ubuntu:24.04 /bin/bash
    # ← コンテナ内の対話環境 (root 権限の bash)
    起動オプション
  3. (Container 内の root 権限の対話環境で) ユーザ名を表示する。
  4. # whoami  
    root
    
  5. (Container 内の root 権限の対話環境で) カレント・ワーキング・ディレクトリを表示する。
  6. # pwd  
    /
    

新しいグループを追加する

guest という名前のグループ を追加する。
  1. guest というグループがまだ存在しないことを確認する。
    # grep guest  /etc/group 
  2. 新しいグループ (グループ名: guest, グループID: 3000) を追加する。
  3. # groupadd -g 3000 guest
  4. グループが作成されたことを確認する。
  5. # grep guest /etc/group  
    guest:x:3000:
    

新しいユーザを追加する

  1. guest というユーザ名がまだ存在しないことを確認する。
  2. # grep guest /etc/passwd 
  3. 新しいユーザ guest を追加する。
  4. # useradd -m -u 3000 -g 3000 -s /bin/bash guest  
    
  5. 新しいユーザが追加されたことを確認する。
  6. # grep guest /etc/passwd   
    guest:x:3000:3000::/home/guest:/bin/bash
    
  7. [重要] 新規ユーザの初期パスワードを設定する。
  8. # passwd guest    
    New password:          ← 新しいパスワードを入力する(エコーバックされない)
    Retype new password:   ← もう一度新しいパスワードを入力する
    passwd: password updated successfully
    
  9. 新規ユーザでloginする。
  10. # login guest Password: ← パスワードを入力する(エコーバックされない)
    Welcome to Ubuntu 24.04.2 LTS (GNU/Linux 6.11.0-26-generic x86_64) * Documentation: https://help.ubuntu.com ... Ubuntu comes with ABSOLUTELY NO WARRANTY, to the extent permitted by applicable law. $
  11. (Container 内の guest 権限の対話環境で) ユーザ名を表示する。
  12. $ whoami    
    guest
    
  13. (Container 内の guest 権限の対話環境で) カレントワーキングディレクトリを表示する。
  14. $ pwd    
    /home/guest
    
  15. (Container 内の guest 権限の対話環境で) ホームディレクトリのファイル一覧を表示する。
  16. $ ls -a    
    guest@f53dec681fc3:~$ ls -a
    .  ..  .bash_logout  .bashrc  .cache  .profile
    
  17. (Container 内の guest 権限の対話環境で) 対話環境を終了する。
  18. $ exit guest の対話環境を終了する。 logout
    # ← Container 内の root 権限の対話環境に戻る

Container を一旦停止してから、再び起動する

  1. (Container 内の root 権限の対話環境で) 対話環境を終了すると Container が停止して、Docker Host の対話環境に戻る。
  2. $ exit ← Container 内の root 権限のの対話環境を終了する。 exit
    # ← Docker Host の対話環境に戻る
  3. Container は停止している。
  4. $ docker container ls          ← 動作中の Container 一覧にはない
    
    $ docker container ls -a          ← 停止中も含めた Container 一覧には存在する
    CONTAINER ID   IMAGE          COMMAND       CREATED   STATUS     PORTS    NAMES
    f53dec681fc3   ubuntu:24.04   "/bin/bash"   ...       ...                 ubuntu24b
    
  5. 再び Container を起動する。
  6. $ docker start ubuntu24b 
    
    $ docker container ls          ← 動作中の Container 一覧に現れた
    CONTAINER ID   IMAGE          COMMAND       CREATED     STATUS     PORTS     NAMES
    f53dec681fc3   ubuntu:24.04   "/bin/bash"   ...         ...                  ubuntu24b
    
  7. 現在の端末を Container の対話環境に接続 (attach) する。
  8. $ docker attach ubuntu24b
    #
  9. 以前追加した guest ユーザは存在し続けている。
  10. # login guest Password: ← パスワードを入力する (エコーバックされない)
    Welcome to Ubuntu 24.04.2 LTS (GNU/Linux 6.11.0-26-generic x86_64) ← Container内のguestの対話環境がはじまる ... To restore this content, you can run the 'unminimize' command. $ whoami guest $ exit ← Container内のguestの対話環境を終了する logout
    # ← Container 内の root 権限の対話環境に戻る
  11. Container を動作させたまま、Host の対話環境に戻る
  12. # 「コントロール+P」「コントロール+Q」 ← Control-P と Control-Q を順にタイプする read escape sequence
    $

(Optional) Container を停止して消去する

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