Backup/Restore a dockerized PostgreSQL database

前言 記錄一下要怎麼在 docker 中對 PostgreSQL 備份/匯入資料 備份 PostgreSQL 在 docker 中備份 PostgreSQL 的指令如下: docker exec -t <container_name> pg_dumpall -c -U <user_name> > dump_`date +%d-%m-%Y"_%H_%M_%S`.sql 匯入 PostgreSQL 將 SQL 檔匯入 PostgreSQL 的指令如下: cat <your_dump>.sql | docker exec -i <container_name> psql -U <user_name> 參考資料 Backup/Restore a dockerized PostgreSQL database

June 29, 2020 · 1 min · Set Mao

Docker: no space left on device

前言 最近在 build docker image 的時候遇到 No space left on device 的問題。 因為在解的過程發現好像蠻多人都有遇過這個問題,於是就把解的過程記錄下來,希望能幫到其他人。 問題描述 今天在 build docker image 的時候出現以下錯誤: ERROR: Could not install packages due to an EnvironmentError: [Errno 28] No space left on device 因為錯誤出現在 pip install 的步驟,所以我先往 pip 的方向去找,找到以下的解決辦法: 在家目錄底下開一個新的 tmp 資料夾,讓系統使用該資料夾來解決 tmp 空間不足的問題。 使用以下命令: pip install --no-cache-dir <package_name> 選擇了第二個方法,但問題依然存在。後來發現這其實是 Docker 的暫存空間被塞滿導致的問題。 解決方案 使用 docker system prune 指令來清理 Docker 暫存空間: docker system prune 這將會刪除: 所有停止的容器 沒有被至少一個容器使用的網路 所有的 dangling images 和 build cache 若還是無法解決,則進一步檢查容器的 log 檔: du -d1 -h /var/lib/docker/containers | sort -h 找到占用空間大的 log 檔後,使用以下指令清除 log: ...

June 9, 2020 · 1 min · Set Mao