Skip to content

Latest commit

 

History

History
executable file
·
75 lines (50 loc) · 1.3 KB

File metadata and controls

executable file
·
75 lines (50 loc) · 1.3 KB

每次重啟 container 都是重建服務, 資料不會保留 啟動後的安裝及設定都不會保留

保留方法

掛載本機目錄

services:
  mysql:
    volumes:
      - ./data:/var/lib/mysql

建立 volumes

services:
  mysql:
    volumes:
      - db_data:/var/lib/mysql
volumes:
  db_data:

volumes 清除資料方法

!!! 用 docker volume 指令

# 列出目前
docker volume ls
# 清除指定
docker volume rm mysql_db_data

!!! 在測試階段, 關閉服務時, 同時刪除資料

docker compose down -v

權限地獄

需要更深入使用 docker 時, 會遇到的問題 初期建議使用 volumes 先進行環境評估 正式環境再決定要如何處理需要寫入時權限設定

!!! 每個服務執行的帳號都不同 httpd 用 apache 或 www-data mysql 用 mysql nginx 用 nginx

!!! 每個系統的uid, gid 也不同 mysql 在發行版是 27, 在官方Docker 容器是 999 apache 在 CentOS/RHEL/Fedora 是48 www-data 在 Debian/Ubuntu 是 33 nginx Debian/Ubuntu 是 101, Arch 是 967, CentOS/RHEL/Fedora 是 998:996

如何處理

在 host 建立帳號, 指定UID, GID 重建 image, 加上指定UID, GID 參數 調整執行服務帳號UID及GID

!!! 詳情見 docker-mysql