Skip to content
An`s Weblog
Go back

Working with Secrets

1. Khái niệm Docker Secrets


2. Các phương pháp quản lý Secrets cơ bản

2.1. Tạo Secret từ STDIN (Standard Input)

openssl rand -base64 20 | docker secret create my_secret_data -

2.2. Tạo Secret từ Tệp tin

openssl rand -base64 20 > secret.txt
docker secret create my_secret_data2 secret.txt

2.3. Liệt kê danh sách Secrets

docker secret ls

2.4. Xem chi tiết cấu hình Secret

docker secret inspect my_secret_data

2.5. Xóa Secret

docker secret rm my_secret_data2

3. Gắn Secret vào Dịch vụ Docker Swarm

3.1. Khởi chạy Service sử dụng Secret

docker service create --name redis --secret my_secret_data redis:alpine

3.2. Kiểm tra nội dung Secret bên trong Container

docker container exec $(docker ps --filter name=redis -q) cat /run/secrets/my_secret_data

4. Ứng dụng thực tế: Triển khai WordPress + MySQL với Secrets

4.1. Tạo các Secret Key mật khẩu

openssl rand -base64 20 > db_password.txt
openssl rand -base64 20 > db_root_password.txt

4.2. Định nghĩa cấu hình docker-compose.yml (Version 3.1)

version: "3.1"

services:
  db:
    image: mysql:5.7
    volumes:
      - db_data:/var/lib/mysql
    networks:
      mysql_internal:
        aliases:
          - db
    environment:
      MYSQL_ROOT_PASSWORD_FILE: /run/secrets/db_root_password
      MYSQL_DATABASE: wordpress
      MYSQL_USER: wordpress
      MYSQL_PASSWORD_FILE: /run/secrets/db_password
    secrets:
      - db_root_password
      - db_password

  wordpress:
    image: wordpress:latest
    depends_on:
      - db
    networks:
      mysql_internal:
        aliases:
          - wordpress
      wordpress_public:
    ports:
      - "8001:80"
    environment:
      WORDPRESS_DB_HOST: db:3306
      WORDPRESS_DB_USER: wordpress
      WORDPRESS_DB_PASSWORD_FILE: /run/secrets/db_password
    secrets:
      - db_password

secrets:
  db_password:
    file: db_password.txt
  db_root_password:
    file: db_root_password.txt

volumes:
  db_data:

networks:
  mysql_internal:
    driver: overlay
    internal: true
  wordpress_public:
    driver: overlay

5. Triển khai & Kiểm thử Stack

docker stack deploy --compose-file docker-compose.yml wp

5.1. Kiểm tra trạng thái triển khai

docker secret ls
docker stack ls
docker service ls

5.2. Truy cập ứng dụng WordPress


6. Tổng kết các lệnh thao tác Secret quan trọng

Mục đíchCâu lệnh
Tạo Secret từ STDINopenssl rand -base64 20 | docker secret create <name> -
Tạo Secret từ tệpdocker secret create <name> <file>
Liệt kê Secretsdocker secret ls
Gắn Secret vào Servicedocker service create --secret <name> ...
Kiểm tra thông tin Secretdocker secret inspect <name>
Xóa Secretdocker secret rm <name>
Deploy Stack chứa Secretsdocker stack deploy -c docker-compose.yml <stack_name>
Xóa Stack (tự xóa Secrets)docker stack rm <stack_name>

Share this post:

Previous Post
Next Steps
Next Post
Docker Content Trust