Ubuntu on WSL を用いたHPCIログイン

0. 変更履歴

0.1 主な変更内容

2024.04.05

  • ログイン手順の一部を利用者の環境に合わせて修正しました。

2024.03.29

  • Docker イメージを gsi-openssh-20240209.tar.xz に更新しました。

2023.12.28

  • Docker イメージを gsi-openssh-20231128.tar.xz に更新しました。

2023.07.31

  • 一部の項目で文章表現や構成を修正しました。

  • 本書のテキスト版の提供を終了しました。

2023.06.16

  • Docker イメージを gsi-openssh-20230322.tar.xz に更新しました。

2023.04.28

  • 参照するドキュメントの URL を修正しました。

2022.12.19

  • タイトルを変更しました。

2022.07.15

  • 英語版ドキュメントを作成しました。

  • Docker イメージを gsi-openssh-20220325.tar.xz に更新しました。

2022.01.31

  • 初版を公開しました。

1. 概要

本書は、Windows 10 の利用者を対象に、Ubuntu on WSL を利用して HPCI 環境にログインする方法について解説したマニュアルです。

  • 本書で説明する方法では、WSL2 上の Ubuntu で実行する Docker Engine でコンテナを実行します。Docker Desktop for Windows は使用しません。

1.1 用語

イメージ

コンテナの基礎となるものです。

コンテナ

イメージを実行するときの実体です。

リポジトリ

Docker イメージの集まりです。

タグ

リポジトリ内のイメージを区別するために割り当てるラベルのことです。

1.2 動作環境

Windows マシンが以下を満たしていることが必要です。

WSL を導入するために必要なシステムの要件

  • Windows 10 64bit version 2004 (build 19041) or higher

1.3 WSL のインストール

Windows マシンに WSL、および Linux ディストリビューションとして Ubuntu をインストールします。

  • インストール手順の詳細は Microsoft のドキュメント WSL のインストール を参照してください。

  • 既に Docker Desktop for Windows を WSL2 バックエンドで利用している環境では、本手順を実施する必要はありません。

インストール手順

  1. PowerShellを管理者として実行します。

  • [クイックリンク] メニューを表示します。
    • 表示するには、 [ スタート ] ボタンを右クリック、または Windows ロゴ キー + X キー を押します。

  • [Windows PowerShell (管理者)] を選択します。

  • 「このアプリがデバイスに変更を加えることを許可しますか?」と確認を求めてきたら [ はい ] を選択して続行します。

  1. wsl コマンドでインストールを実行します.

  • PowerShell で以下を実行します。

wsl --install
  • WSL およびデフォルトの Linux ディストリビューションとして Ubuntu がインストールされます。

PS C:\WINDOWS\system32> wsl --install
インストール中: 仮想マシン プラットフォーム
仮想マシン プラットフォーム はインストールされました。
インストール中: Linux 用 Windows サブシステム
Linux 用 Windows サブシステム はインストールされました。
ダウンロード中: WSL カーネル
インストール中: WSL カーネル
WSL カーネル はインストールされました。
ダウンロード中: Ubuntu
要求された操作は正常に終了しました。変更を有効にするには、システムを再起動する必要があります。
PS C:\WINDOWS\system32>
  1. メッセージに従い、WSL のインストールを完了するため、システムを再起動します。

  2. デフォルト UNIX ユーザアカウントを設定します。

Windows にログインし直した後、Ubuntu を実行してデフォルト UNIX ユーザアカウントを作成する必要があります。

デフォルト UNIX ユーザアカウントの詳細は Microsoft のドキュメント Linux ユーザー名とパスワードを設定する を参照してください。

Ubuntu は再起動後の Windows へのログインで自動的に起動します。Ubuntu が起動しない場合は下記の操作により起動してください。

  • [ スタート ] ボタンを押して、アプリの一覧から [ Ubuntu ] を選択します。

以上で WSL および Ubuntu のインストールは完了です。

パッケージの更新とアップグレード

パッケージマネージャを使用して、パッケージを定期的に更新およびアップグレードすることをお勧めします。次のコマンドを使用します。

$ sudo apt update && sudo apt upgrade

2. Docker Engine のインストール手順

注意

Docker Desktop の有料化に伴い、Docker Desktop for Windows の利用をやめる場合、間違って Docker Desktop 用のコマンドを実行してしまうことを防ぐため、Docker Engine のインストールを行う前に、 Dockerを用いたHPCIログイン (Windows10編) の「 2.3 アンインストール手順 」の手順に従って Docker Desktop for Windows をアンインストールしてください。

WSL 上の Ubuntu に Docker Engine をインストールします。

インストール手順の詳細は Docker のドキュメント Install Docker Engine on Ubuntu を参照してください。ただし WSL2 上の Ubuntu での操作を記述したものではないので、以下の説明と異なる部分があります。

2.1. インストール手順

Ubuntu の起動

1.3 WSL のインストール 」でインストールした Ubuntu を起動します。

  • [ スタート ] ボタンを押して、アプリの一覧から [ Ubuntu ] を選択します。

古いバージョンのアンインストール

古い Docker のパッケージ docker、docker.io、docker-engine がインストールされている場合はアンインストールします。

$ sudo apt-get remove docker docker-engine docker.io containerd runc

Docker リポジトリのセットアップ

Docker を配布している Docker リポジトリの情報を apt に登録します。

  1. aptが HTTPS 経由でリポジトリにアクセスしパッケージをインストールできるようにするため、以下のパッケージをインストールします。

$ sudo apt-get update
$ sudo apt-get install ca-certificates curl gnupg lsb-release
  1. Docker の公式 GPG 鍵を追加します。

$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
  1. 以下のコマンドを使って安定版(stable)リポジトリをセットアップします。

$ echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

参考

上記 2. および 3. を実行するスクリプト setup-repo.sh を以下からダウンロードできます。

Docker Engine のインストール

  1. Docker と containerd の最新版をインストールします。

$ sudo apt-get update
$ sudo apt-get install docker-ce docker-ce-cli containerd.io
  1. docker コマンドが実行できることを確認します。

$ sudo docker -v
Docker version 20.10.17, build 100c701
$
  1. Docker デーモンを起動します (WSL 上の Ubuntu では Docker デーモンが自動起動しないので、手動で起動する必要があります)。

$ sudo service docker start
 * Starting Docker: docker                                  [ OK ]
$
  1. Docker Engine が正しくインストールされているのを確認するため、hello-worldイメージを実行します。

$ sudo docker run hello-world

実行時の出力例は以下のとおりです。

$ sudo docker run hello-world
Unable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world
2db29710123e: Pull complete
Digest: sha256:975f4b14f326b05db86e16de00144f9c12257553bba9484fed41f9b6f2257800
Status: Downloaded newer image for hello-world:latest

Hello from Docker!
This message shows that your installation appears to be working correctly.

To generate this message, Docker took the following steps:
 1. The Docker client contacted the Docker daemon.
 2. The Docker daemon pulled the "hello-world" image from the Docker Hub.
    (amd64)
 3. The Docker daemon created a new container from that image which runs the
    executable that produces the output you are currently reading.
 4. The Docker daemon streamed that output to the Docker client, which sent it
    to your terminal.

To try something more ambitious, you can run an Ubuntu container with:
 $ docker run -it ubuntu bash

Share images, automate workflows, and more with a free Docker ID:
 https://hub.docker.com/

For more examples and ideas, visit:
 https://docs.docker.com/get-started/

$

2.2. インストール後の設定

非特権ユーザが docker コマンドを実行できるようにする

docker コマンドの実行には sudo が必要になります。非特権ユーザでも docker コマンドを実行できるようにするには、ユーザを docker グループに追加します。

詳細は Docker のドキュメント Manage Docker as a non-root user を参照してください。

  1. ユーザをdockerグループに追加します。

$ sudo usermod -aG docker $USER
  1. グループに属したことが認識されるようにするため、exit コマンドで Ubuntu を終了して、Ubuntu を起動し直してください。

  2. sudo がなくても docker コマンドが実行できることを確認します。

$ docker run hello-world

自動起動設定

Docker Engine のインストール 」の手順にあるとおり、WSL 上の Ubuntu では Docker デーモンが自動起動しません。Ubuntu を起動した後で、手動で起動する必要があります。

以下の設定により、Ubuntu を起動するタイミングで Docker デーモンの自動起動を行うことができます。

  1. visudo を実行します。デフォルトでは nano エディタが起動します。

$ sudo visudo
  1. 以下の内容を記述します。

# Allow members of group docker to
%docker ALL=(ALL) NOPASSWD: /usr/sbin/service docker start, /usr/sbin/service docker stop, /usr/sbin/service docker restart
  1. 変更内容を保存してエディタを終了します。

  2. $HOME/.bashrc に docker サービスを起動するスクリプトを追加します。

# docker daemon
service docker status > /dev/null 2>&1
if [ $? = 1 ]; then
    sudo service docker start
fi

次回 Ubuntu 起動時から、docker デーモンが自動起動します。

バインドマウント用ディレクトリ作成

gsi-openssh の Docker イメージを実行する際に、バインドマウントするディレクトリを予め作成します。この例では、デフォルトユーザのホームディレクトリに work という名前で作成しています。

  1. ホームディレクトリに work という名前のディレクトリを作成します。

$ cd
$ mkdir work
  1. work の所有者およびグループを、コンテナ上のユーザ hpciuser の uid, gid に変更します。

$ sudo chown 2000:2000 work

コンテナ上のユーザ hpciuser の uid, gid に関する情報は 「 bash の実行環境 」にあります。

3. HPCI 環境へのログイン手順

Windows 10 の WSL 上の Ubuntu で、 Docker Engine を利用して HPCI 環境にログインする手順について解説します。

流れは下記のとおりです。

  1. Ubuntu の起動

  2. Docker デーモンの起動

  3. Docker イメージのロード (導入時のみ)

  4. Docker コンテナの起動

  5. bash の実行

  6. ログインサーバへのログイン

  7. Docker コンテナの停止

3.1 Ubuntu の起動

  • [ スタート ] ボタンを押して、アプリの一覧から [ Ubuntu ] を選択します。

3.2 Docker デーモンの起動

自動起動設定 」で自動起動の設定を実施していない場合は、Docker デーモンを手動で起動します。

$ sudo service docker start
 * Starting Docker: docker                                  [ OK ]
$

3.3 Docker イメージのロード (導入時のみ)

Docker イメージをローカルストレージ領域に保管する必要があります。

ダウンロード

  1. Docker イメージの最新版を下記 URL からダウンロードします。

    https://www.hpci.nii.ac.jp/gt6/docker/

以降の説明では、Docker イメージのファイル名を gsi-openssh-20240209.tar.xz としますので、ダウンロードしたファイル名に読み替えてください。

Docker イメージのロード

  1. docker load コマンドで Docker イメージをロードします。

username@WINDOWSPC:~$ docker load -i gsi-openssh-20231128.tar.xz
51af9e44b4ea: Loading layer    196MB/196MB
88a6e38e08cb: Loading layer  285.3MB/285.3MB
730b7f317e6e: Loading layer   7.68kB/7.68kB
30e384109cb7: Loading layer  4.096kB/4.096kB
58d49e02e5bd: Loading layer  607.7kB/607.7kB
5f70bf18a086: Loading layer  1.024kB/1.024kB
Loaded image: hpci/gsi-openssh:20231128
username@WINDOWSPC:~$
  1. ローカルストレージに保管されたことを確認するには、docker images コマンドを実行します。REPOSITORY が hpci/gsi-openssh で、TAG の値が Docker イメージのファイル名にある日付に一致する行が存在することを確認します。

username@WINDOWSPC:~$ docker images hpci/gsi-openssh
REPOSITORY         TAG        IMAGE ID       CREATED       SIZE
hpci/gsi-openssh   20231128   12a54c4e3ec3   4 weeks ago   466MB
username@WINDOWSPC:~$

3.4 Docker コンテナの起動

  1. 3.3 でロードした Docker イメージを docker run コマンドで実行します。

username@WINDOWSPC:~$ docker run -d --rm --name gsi-openssh -v ~/work:/home/hpciuser/work hpci/gsi-openssh:20231128
10c2073ab4d311aa51cdb114545540f27aa6668d39d002efd5798985ebc0857a
username@WINDOWSPC:~$

表示される長い文字列はコンテナ ID (UUID) です。このコンテナでコマンドを実行する場合や、コンテナの実行を停止する場合に、この ID (の短縮形) を使用します。

引数の意味は下記のとおりです。

-d

コンテナをバックグラウンドで実行します。

--rm

終了後にコンテナを自動的に削除します。

--name NAME

コンテナに名前を設定します。上記の例では gsi-openssh という名前を設定しています。この後に実行するコマンドの引数にコンテナを指定する際、コンテナ ID のかわりにコンテナ名 gsi-openssh を指定できるようになります。

-v LIST

ホスト OS 上のディレクトリ HOST-DIR をコンテナ上のディレクトリ CONTAINER-DIR にマウントします。LIST は HOST-DIR:CONTAINER-DIR の書式で指定します。上記の例では、「 バインドマウント用ディレクトリ作成 」でバインドマウント用に作成した work ディレクトリ (~/work) をコンテナの /home/hpciuser/work ディレクトリとして参照できるように指定しています。

-d オプションがないと、Ubuntu のプロンプトに戻りません。この場合は、もうひとつ Ubuntu を開いて、docker stop gsi-openssh を実行してください。コンテナが停止して、docker run を実行した方の Ubuntu のプロンプトが戻ります。その上で改めて docker run を実行してください。

—name オプションに指定する名前は、既存のコンテナと重複しない名前にします。同じ名前のコンテナが既に存在する場合は、別の名前を指定するか、既存のコンテナを (不要ならば) 削除してください。

--name オプションによる名前の指定を省略した場合は、コンテナ名はランダムな文字列が設定されます。設定された名前は後述する docker ps コマンドで確認できます。

-v オプションに指定する CONTAINER-DIR にはコンテナ上のユーザがアクセス可能なディレクトリを指定する必要があります。gsi-openssh-20240209.tar.xz の Docker イメージでは、コンテナ上のユーザは hpciuser で固定となっているので、 /home/hpciuser ディレクトリ下の名前を指定してください。

  1. 正常に起動できているかどうか、docker ps コマンドで確認します。下記の欄に一致する情報が存在することを確認します。

CONTAINER ID

docker run 実行時に表示されたコンテナ ID (の始めから12文字)

IMAGE

引数に指定した Docker リポジトリ名:タグ名

NAMES

--name オプションで指定した名前

username@WINDOWSPC:~$ docker ps
CONTAINER ID   IMAGE                       COMMAND                  CREATED         STATUS         PORTS     NAMES
10c2073ab4d3   hpci/gsi-openssh:20231128   "sudo /usr/sbin/cron…"   2 minutes ago   Up 2 minutes             gsi-openssh
username@WINDOWSPC:~$

docker ps の出力に、上記に該当する情報が表示されていなければ、コンテナの起動に失敗した可能性があります。

表示する情報の種類や順序を --format で変更できます。NAMES, CONTAINER ID, IMAGE だけを表示するには下記のように指定します。

username@WINDOWSPC:~$ docker ps --format "{{.Names}} {{.ID}} {{.Image}}"
gsi-openssh 10c2073ab4d3 hpci/gsi-openssh:20231128
username@WINDOWSPC:~$

3.5 bash の実行

bash の実行環境

bash の実行環境の設定は以下のとおりです。gsi-openssh-20240209.tar.xz の Docker イメージではすべて固定値です。

  • ユーザ名 (ユーザID)

    hpciuser (2000)

  • グループ名 (グループID)

    hpciuser (2000)

  • ホームディレクトリ

    /home/hpciuser

  • タイムゾーン (環境変数 TZ の設定値)

    JST-9

bash の実行

  1. docker exec コマンドを使用して、3.4 で起動したコンテナで /bin/bash を実行します。ここでは gsi-openssh です。

username@WINDOWSPC:~$ docker exec -i -t gsi-openssh /bin/bash
[hpciuser@XXXXXXXXXXXX ~]$

引数 -i および -t は、bash をインタラクティブに実行するために必要な引数です。-it のように連結して指定することもできます。

-i

標準入力 (STDIN) をオープンしたままにします。

-t

コンテナのプロセスに擬似ターミナル (pseudo TTY) を割り当てます。

bash プロセスの開始により、下記の表示となります。

  • プロンプトは Ubuntu のプロンプトではなく、bash のプロンプトとなります。

  • XXXXXXXXXXXX の部分はコンテナ ID の短縮形が表示されます。

3.6 ログインサーバへのログイン

本節ではログイン手順の概要を説明します。詳細は HPCI ログインマニュアル を参照してください。

代理証明書の発行

最初に、Web ブラウザで HPCI 証明書発行システム にアクセスして代理証明書を発行し、代理証明書リポジトリに格納する必要があります。

注意

  • 代理証明書の有効期限は最大168時間です。

  • 有効期限が切れたら、その都度発行 (格納) してください。

  • 発行 (格納) 手順は以下のドキュメントを参照してください。

代理証明書のダウンロード

コンテナ に代理証明書をダウンロードします。

  1. myproxy-logon コマンドで、代理証明書をダウンロードします。

[hpciuser@XXXXXXXXXXXX ~]$ myproxy-logon -s portal.hpci.nii.ac.jp -l [HPCI-ID]
Enter MyProxy pass phrase: ********
A credential has been received for user <HPCI-ID> in /tmp/x509up_up2000.
[hpciuser@XXXXXXXXXXXX ~]$
  1. grid-proxy-info コマンドで、取得した代理証明書の情報を確認します。

[hpciuser@XXXXXXXXXXXX ~]$ grid-proxy-info
subject  : /C=JP/O=NII/OU=HPCI/CN=user/CN=proxy/CN=proxy/CN=proxy/CN=proxy
issuer   : /C=JP/O=NII/OU=HPCI/CN=user/CN=proxy/CN=proxy/CN=proxy
identity : /C=JP/O=NII/OU=HPCI/CN=user
type     : RFC 3820 compliant impersonation proxy
strength : 2048 bits
path     : /tmp/x509up_u2000
timeleft : 12:01:15
[hpciuser@XXXXXXXXXXXX ~]$

ログインサーバへのログイン

  1. ログインサーバにログインします。以下に東京工業大学のログインサーバ login.t3.gsic.titech.ac.jp にログインする例を示します。

[hpciuser@XXXXXXXXXXXX ~]$ gsissh -p 2222 login.t3.gsic.titech.ac.jp
Last login: Tue Jan 24 11:09:13 2023 from xxx.xxx.xxx.xxx
--------------------------------------------------------------------
Last modified: 2023-04-06 17:00:00 JST

 ** Do not run heavy programs like ISVs on login nodes login[01]. **

    (The current TSUBAME 3.0 operational status)
    https://www.t3.gsic.titech.ac.jp/      Twitter:@Titech_TSUBAME
--------------------------------------------------------------------
<HPCI-ID>@login1:~>
  1. ログインサーバ から exit すると、 コンテナの bash に戻ります。

<HPCI-ID>@login1:~> exit
logout
Connection to login.t3.gsic.titech.ac.jp closed.
[hpciuser@XXXXXXXXXXXX ~]$

3.7 bash の終了

  1. コンテナから Ubuntu に戻るには、bash 上で exit を実行します。

[hpciuser@XXXXXXXXXXXX ~]$ exit
exit
username@WINDOWSPC:~$ exit

exit により bash プロセスは終了しますが、コンテナは停止していません。3.5 に従い bash を実行することで再度 gsissh コマンドを使用できます。代理証明書が有効期間内であれば、代理証明書をダウンロードしなおす必要はありません。

3.8 Docker コンテナの停止

  1. コンテナを停止するには、docker stop コマンドを実行します。停止するコンテナ名は 3.4 で起動したコンテナ名を指定します。ここでは gsi-openssh です。

username@WINDOWSPC:~$ docker stop gsi-openssh
gsi-openssh
username@WINDOWSPC:~$

注意

コンテナを停止すると、そのコンテナは削除されます。コンテナ上に作成、保存したファイルも削除されます。コンテナを停止する前に、必要なファイルを Ubuntu に転送してください。

3.9 ボリュームへのファイルの保存について

docker run コマンドの -v LIST 引数で、Ubuntu 上のディレクトリをバインドマウントすると、コンテナと Ubuntu の間でファイルを共有できます。バインドマウント用のディレクトリの作成方法は「 バインドマウント用ディレクトリ作成 」を参照してください。

4. Docker イメージの更新手順

本章では、旧バージョンの Docker イメージを新バージョンの Docker イメージに更新する手順を説明します。

説明では以下の名前を使用します。実際に使用するバージョンで読み替えてください。

Docker イメージ名

新バージョン

hpci/gsi-openssh:20240209

旧バージョン

hpci/gsi-openssh:20231128

4.1 異なるバージョンの Docker イメージの保管について

Docker イメージはバージョンをタグで識別するので、hpci/gsi-openssh の複数のバージョンをローカルストレージに保管することができます。旧バージョン (hpci/gsi-openssh:20231128) を既にロード済みの環境に新バージョン (hpci/gsi-openssh:20240209) をロードして、両方のバージョンを保管しておくことが可能です。

username@WINDOWSPC:~$ docker image ls
REPOSITORY         TAG        IMAGE ID       CREATED         SIZE
hpci/gsi-openssh   20240209   dd8e64a66353   6 weeks ago    320MB
hpci/gsi-openssh   20231128   12a54c4e3ec3   4 months ago   466MB
username@WINDOWSPC:~$

言い換えると、新バージョンのイメージをロードしても、ロード済みの旧バージョンは自動的には削除されません。旧バージョンのイメージが不要な場合は、明示的に削除する必要があります。

4.2 新バージョンの Docker イメージの導入

新バージョンの Docker イメージを導入するには、最初の導入時と同様に 3.3 Docker イメージのロード (導入時のみ) の手順に従って実行します。

4.3 旧バージョンの Docker イメージの削除

旧バージョンの Docker イメージが不要な場合、本節の手順にしたがってローカルストレージから削除します。

Docker コンテナの停止

削除する Docker イメージでコンテナを実行中の場合、まずコンテナを停止する必要があります。

  1. 実行中のコンテナを確認するには docker ps コマンドを実行します。

username@WINDOWSPC:~$ docker ps -a
CONTAINER ID   IMAGE                       COMMAND                  CREATED         STATUS         PORTS     NAMES
76b44f435a6e   hpci/gsi-openssh:20231128   "sudo /usr/sbin/cron…"   2 minutes ago   Up 2 minutes             gsi-openssh
username@WINDOWSPC:~$

旧バージョンの Docker イメージ (hpci/gsi-openssh:20231128) から生成したコンテナ gsi-openssh が実行中であることが確認できます。

  1. 実行中のコンテナを停止するには docker stop コマンドを実行します。

    gsi-openssh という名前のコンテナを停止する場合は以下のように実行します。

username@WINDOWSPC:~$ docker stop gsi-openssh
gsi-openssh
username@WINDOWSPC:~$

docker run コマンド実行時の引数に --rm を指定している場合は、コンテナの停止と同時にコンテナが削除されます。

Docker コンテナの削除

docker run コマンド実行時の引数に --rm を指定していない場合は、docker stop コマンドでコンテナを停止しただけではコンテナは削除されません。以下の手順でコンテナを削除してください。

  1. 停止中を含む全てのコンテナを確認するには docker ps -a コマンドを実行します。

username@WINDOWSPC:~$ docker ps -a
CONTAINER ID   IMAGE                       COMMAND                  CREATED         STATUS                     PORTS     NAMES
76b44f435a6e   hpci/gsi-openssh:20231128   "sudo /usr/sbin/cron…"   2 minutes ago   Exited (0) 2 minutes ago             gsi-openssh
username@WINDOWSPC:~$

旧バージョンの Docker イメージ (hpci/gsi-openssh:20231128) から生成したコンテナ gsi-openssh が Exited の状態で存在していることが確認できます。

  1. Docker コンテナを削除するには docker rm コマンドを実行します。

    gsi-openssh という名前のコンテナを削除する場合は以下のように実行します。

username@WINDOWSPC:~$ docker rm gsi-openssh
gsi-openssh
username@WINDOWSPC:~$

Docker イメージの削除

  1. Docker イメージを削除するには docker rmi コマンドを実行します。

    hpci/gsi-openssh:20231128 という名前のイメージを削除する場合は以下のように実行します。

username@WINDOWSPC:~$ docker rmi hpci/gsi-openssh:20231128
Untagged: hpci/gsi-openssh:20231128
Deleted: sha256:12a54c4e3ec3820032519ed6c3a672827346bbbffa2eb31de36a7f2789cd0277
Deleted: sha256:b61a533269a6cd65d1a92c43e4301d973e479085b314c946e383f64daf4970b2
Deleted: sha256:a3cc829c75127774c8edf8123d92c558ff08f05429746bfba3cd194d441b2c4b
Deleted: sha256:6c64f8888ec73467a7490dcb6e213fb80e62929dfaeca223a53d9c56bf9bd218
Deleted: sha256:0792f28b26a53ed79b0c133e2ab528fe53e73b988cf2e4eabb06dc16ec387e3b
Deleted: sha256:29e94a958940fc04064eedabe7d0a06cf1837e733e2544572c138dce321c0265
Deleted: sha256:51af9e44b4eaeac885d65d3f63d6b1a81bacdc0846f917ab8ad50bfe0848fe55
username@WINDOWSPC:~$

注意

イメージから生成したコンテナが存在する状態で削除を実行すると、以下のようにエラーになります。

username@WINDOWSPC:~$ docker rmi hpci/gsi-openssh:20231128
Error response from daemon: conflict: unable to remove repository reference "hpci/gsi-openssh:20231128" (must force) - container 76b44f435a6e is using its referenced image ad9a3118feda
username@WINDOWSPC:~$