iT邦幫忙

2022 iThome 鐵人賽

DAY 3
0

今天分享自己接觸 docker 以來,遇到頻率比較高的一些問題,希望對初學的人有一些幫助。

要保存的資料要用 volume 掛著

這個在一開始還蠻重要的,因為 docker 容器內的資料再重新啟動之後又會還原到一開始的狀態,中間產生的 /var/log, 資料通通都不見了。所以需要設定 volume,docker 就會將指定的檔案路徑映射到到容器中的路徑,這樣就算 docker 關閉容器後,也不會造成資料流失。

同理,資料庫的檔案也要記得設定 volume

檔案權限問題

這個幾乎是 docker 使用者必定會遇到的問題。常見的狀況是資料夾擁有者是 1000:1000 但 docker 內的服務往往是用其他身分 (www, www-data) 執行,然後檔案權限預設是 755,造成無法寫入檔案的情況。

解法是 chmod 777 -R <dir-name>; chown www-data:www-data -R <dir-name>

docker 預設 root 身分執行

一開始的 docker 需要 root 身分才能執行,但隨之而來的是安全問題。所以有一些人建議用非 root 的身分執行 docker。注意:使用前須要確認 docker 的版本在 v20 以上。[^1] [^2]

常用指令

docker start <container1> <container2> ... 啟動容器
docker stop <container1> <container2> ... 關閉容器
docker ps 列出運行中的容器
docker exec -ti -w <work-dir-path> <container-name> bash 連進容器做事情
docker exec <container-name> <cmd...> 不想進容器,只想執行一次指令就結束

docker 以外的其他選擇

看別人的推薦文章談到 Podman 有興趣可以了解一下 [^3]

參考

[1]: Docker Tips: Running a Container With a Non Root User | by Luc Juggery | Better Programming
[2]: Run the Docker daemon as a non-root user (Rootless mode) | Docker Documentation
[3]: Podman 淺談 - 為何你應該選擇 Podman 而不是 Docker? - iT 邦幫忙::一起幫忙解決難題,拯救 IT 人的一天


上一篇
貳。docker 學習歷程
下一篇
肆。大樹守衛 - OAuth
系列文
程式小萌新的學習筆記30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言