docker secret rm コマンドを使ってシークレットを削除する方法

DockerDockerBeginner
今すぐ練習

💡 このチュートリアルは英語版からAIによって翻訳されています。原文を確認するには、 ここをクリックしてください

はじめに

この実験では、シークレット (secrets) を使用して Docker 内で機密データを安全に管理する方法を学びます。まず、機密情報を保存するための Docker シークレットを作成します。

作成後、既存のシークレットを一覧表示することで、シークレットが Docker 環境に正常に追加されたことを確認します。最後に、シークレットを削除する操作を行い、再度シークレットを一覧表示することで削除を確認します。この実践的な演習では、Docker シークレットの作成、一覧表示、削除に必要な基本的なコマンドを学ぶことができます。


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL docker(("Docker")) -.-> docker/ContainerOperationsGroup(["Container Operations"]) docker/ContainerOperationsGroup -.-> docker/ls("List Containers") docker/ContainerOperationsGroup -.-> docker/rm("Remove Container") docker/ContainerOperationsGroup -.-> docker/create("Create Container") subgraph Lab Skills docker/ls -.-> lab-555223{{"docker secret rm コマンドを使ってシークレットを削除する方法"}} docker/rm -.-> lab-555223{{"docker secret rm コマンドを使ってシークレットを削除する方法"}} docker/create -.-> lab-555223{{"docker secret rm コマンドを使ってシークレットを削除する方法"}} end

シークレットの作成

このステップでは、Docker でシークレットを作成する方法を学びます。Docker シークレットは、コンテナが実行時に必要とするパスワード、SSH キー、その他の資格情報などの機密データを管理するために使用されます。シークレットを使用することは、機密情報をコンテナイメージに直接保存したり、環境変数として渡したりするよりも安全な方法です。

シークレットを作成する前に、必要な Docker 環境が設定されていることを確認しましょう。LabEx VM には Docker が事前にインストールされています。以下のコマンドを実行して Docker のバージョンを確認できます。

docker version

Docker がインストールされて実行されていることを示す、以下のような出力が表示されるはずです。

Client: Docker Engine - Community
 Version:           20.10.21
 API version:       1.41
 Go version:        go1.16.15
 Git commit:        baedd2a
 Built:             Tue Oct 25 17:58:10 2022
 OS/Arch:           linux/amd64
 Context:           default
 Experimental:      true

Server: Docker Engine - Community
 Engine:
  Version:          20.10.21
  API version:      1.41 (minimum version 1.12)
  Go version:       go1.16.15
  Git commit:       363bd3a
  Built:            Tue Oct 25 17:56:32 2022
  OS/Arch:          linux/amd64
  Experimental:     false
 containerd:
  Version:          1.6.8
  GitCommit:        9cd335e8e55e68bf582ae4525b3a13ffa8a49392
  Built:            Tue Oct 25 17:54:39 2022
 runc:
  Version:          1.1.4
  GitCommit:        v1.1.4-0-g5fd4c4d
  Built:            Tue Oct 25 17:54:25 2022
 docker-init:
  Version:          0.19.0
  GitCommit:        de40ad0
  Built:            Tue Oct 25 17:54:16 2022

シークレットを作成するには、docker secret create コマンドを使用できます。このコマンドは、標準入力またはファイルから機密データを読み取り、Docker 内にシークレットを作成します。

s3cr3t を含む my_password という名前のシンプルなシークレットを作成しましょう。シークレットの値を docker secret create コマンドにパイプで渡します。

echo "s3cr3t" | docker secret create my_password -

コマンドを実行すると、Docker はシークレットを作成し、その ID を出力します。出力は以下のようになります。

<secret_id>

<secret_id> は、あなたが作成したシークレットの一意の識別子です。将来的な操作で必要になる可能性があるので、このことを覚えておいてください。

作成を確認するためにシークレットを一覧表示する

このステップでは、前のステップで作成したシークレットが正常に追加されたことを確認するために、Docker 内の既存のシークレットを一覧表示する方法を学びます。

Docker が管理するすべてのシークレットを一覧表示するには、docker secret ls コマンドを使用できます。このコマンドは、シークレットの ID、名前、作成タイムスタンプを含むシークレットの一覧を提供します。

シークレットを確認するためにコマンドを実行しましょう。

docker secret ls

出力には、前のステップで作成した my_password シークレットとその ID、作成時間が表示されるはずです。出力は以下のようになります。

ID                          NAME                CREATED             UPDATED
<secret_id>                 my_password         About a minute ago  About a minute ago

my_password シークレットが一覧に表示されているのがわかり、正常に作成されたことが確認できます。<secret_id> は、シークレットを作成したときに出力された ID と一致します。

このコマンドは、シークレットを管理し、Docker 環境で正しく設定されていることを確認するのに役立ちます。

シークレットの削除

このステップでは、Docker でシークレットを削除する方法を学びます。シークレットが不要になったときに削除することは、セキュリティ上重要であり、Docker 環境をクリーンアップするためにも必要です。

シークレットを削除するには、docker secret rm コマンドの後にシークレットの名前または ID を指定します。前のステップでは、my_password という名前のシークレットを作成しました。

my_password シークレットを削除しましょう。

docker secret rm my_password

コマンドを実行すると、Docker はシークレットを削除し、削除されたシークレットの名前または ID を出力します。出力は以下のようになります。

my_password

これにより、my_password シークレットが Docker 環境から正常に削除されたことが確認できます。

機密情報への不正アクセスのリスクを最小限に抑えるために、シークレットが使用されなくなったら削除するのが良い習慣です。

削除を確認するためにシークレットを一覧表示する

このステップでは、前のステップで削除した my_password シークレットがもう存在しないことを確認するために、再度 Docker のシークレットを一覧表示します。

すべてのシークレットを一覧表示するには、docker secret ls コマンドを使用します。

docker secret ls

今回の出力には、my_password シークレットが含まれていないはずです。環境に他のシークレットがない場合、出力は次のようになるかもしれません。

ID                          NAME                CREATED             UPDATED

他のシークレットがある場合、それらが一覧表示されますが、my_password は含まれないはずです。これにより、削除操作が成功したことが確認できます。

削除後にシークレットを一覧表示することは、機密データが Docker 環境にもう保存されていないことを確認する良い方法です。

まとめ

この実験では、シークレットを使用して Docker で機密データを安全に管理する方法を学びました。まず、Docker 環境を確認し、次に docker secret create コマンドを使用して標準入力からシークレットの値をパイプして、my_password という名前のシークレットを作成しました。

シークレットを作成した後、docker secret ls コマンドを使用して既存のシークレットを一覧表示し、my_password が正常に作成されたことを確認しました。最後に、docker secret rm コマンドを使用してシークレットを削除する練習を行い、再度シークレットを一覧表示することで削除を確認し、Docker シークレットの完全なライフサイクルを実証しました。