CodeGym /コース /Docker SELF /設定と秘密情報の操作

設定と秘密情報の操作

Docker SELF
レベル 20 , レッスン 0
使用可能

6.1 コマンド docker config

Docker は、設定ファイルや秘密データを安全に管理するための組み込みのメカニズムを提供しているよ。これを使うと、コンテナで設定ファイルや機密データを簡単に扱えるんだ。これらのメカニズムはセキュリティを向上させたり、分散システムの設定管理を簡略化するのに役立つよ。この講義では、docker configdocker secret のコマンドの使い方、例、それからベストプラクティスについて見ていくね。

設定の基本的な使い方

docker config コマンド は、Docker Swarm のサービスで使える設定ファイルを管理するためのものだよ。設定はアプリケーションの設定やパラメータを簡単に渡す方法を提供してくれるんだ。

docker config の基本コマンド

  1. docker config create — 新しい設定を作成する
  2. docker config ls — 全ての設定をリスト表示する
  3. docker config inspect — 設定の詳細情報を取得する
  4. docker config rm — 設定を削除する

docker config を使った例

設定の作成

設定を作成するには docker config create コマンドを使うんだ。例えば、Nginx 用の設定ファイルを作成する例を見てみよう。

nginx.conf ファイルを作成する:

nginx

user www-data;
worker_processes auto;
pid /run/nginx.pid;
        
events {
    worker_connections 768;
}
        
http {
    server {
        listen 80;
        location / {
            return 200 'こんにちは、世界!';
            add_header Content-Type text/plain;
        }
    }
}

Docker で設定を作成する:

Terminal

docker config create nginx_config ./nginx.conf

2. 全ての設定のリスト表示

作成された全ての設定を見るには、docker config ls コマンドを使うよ:

Terminal

docker config ls

コマンドの出力例:

Terminal

ID                                                                                       NAME           CREATED             UPDATED
f8f8ff8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8   nginx_config    10 seconds ago     10 seconds ago

3. サービスでの設定の利用

作成した設定を使用してサービスを作成する:

Terminal

docker service create --name nginx --config source=nginx_config,target=/etc/nginx/nginx.conf -p 8080:80 nginx

4. 設定の削除

設定を削除するには、docker config rm コマンドを使うよ:

Terminal

docker config rm nginx_config

6.2 コマンド docker secret

コマンド docker secret は、パスワード、APIキー、証明書のような「シークレット」を安全に管理するためのものだよ。これらはDocker Swarmで使うサービスが安全に利用できるんだ。シークレットは暗号化されて保存されて、使うサービスだけがアクセスできるよ。

主なコマンド docker secret

  1. docker secret create — 新しいシークレットを作る
  2. docker secret ls — 全シークレットのリストを見る
  3. docker secret inspect — シークレットの情報を確認する
  4. docker secret rm — シークレットを削除する

使い方の例 docker secret

1. シークレットの作成

シークレットを作るには docker secret create コマンドを使うよ。例として、データベースパスワードのシークレットを作成しよう。

db_password.txt というファイルを作成しよう:

Text

mysecretpassword

Dockerでシークレットを作成する:

Terminal

docker secret create db_password ./db_password.txt

2. 全シークレットのリスト

全ての作成済みシークレットを確認するには docker secret ls コマンドを使うよ:

Terminal

docker secret ls

コマンドの出力:

Terminal

ID                                                                                    NAME           CREATED             UPDATED
f8f8ff8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8   db_password    10 seconds ago     10 seconds ago

3. サービスでのシークレットの使用

作成したシークレットを使用してサービスを作成しよう:

Terminal

docker service create --name postgres --secret db_password -e 
POSTGRES_PASSWORD_FILE=/run/secrets/db_password postgres

4. シークレットの削除

シークレットを削除するには docker secret rm コマンドを使うよ:

Terminal

docker secret rm db_password

6.3 実践例とベストプラクティス

実践例とベストプラクティス

例1: Webアプリでの設定とシークレットの使用

設定ファイルとシークレットの作成

ターミナル

echo "user www-data;" > ./nginx.conf
echo "worker_processes auto;" >> ./nginx.conf
docker config create nginx_config ./nginx.conf

echo "mysecretpassword" > ./db_password.txt
docker secret create db_password ./db_password.txt

設定とシークレットを使用するサービスの作成

ターミナル

docker service create --name nginx --config source=nginx_config,target=/etc/nginx/nginx.conf -p 
8080:80 nginx

docker service create --name postgres --secret db_password -e 
POSTGRES_PASSWORD_FILE=/run/secrets/db_password postgres

例2: 設定の更新

設定ファイルの内容を更新する

nginx.confファイルを変更してください:

nginx

user www-data;
worker_processes 4;

新しいバージョンの設定を作成する

ターミナル

docker config create nginx_config_v2 ./nginx.conf

新しい設定でサービスを更新する

ターミナル

docker service update --config-rm nginx_config --config-add 
source=nginx_config_v2,target=/etc/nginx/nginx.conf nginx
コメント
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION