差異處
這裏顯示兩個版本的差異處。
兩邊的前次修訂版 前次修改 下次修改 | 前次修改 | ||
tech:docker [2023/11/05 16:33] – [更新 docker compose 內相同 image 的最新版方式] jonathan | tech:docker [2025/04/10 12:51] (目前版本) – [清除目前主機端未使用的 docker images] jonathan | ||
---|---|---|---|
行 47: | 行 47: | ||
</ | </ | ||
</ | </ | ||
+ | |||
+ | ==== 刪除已經不執行的 docker container ==== | ||
+ | * 主要是在 docker run 之後, 如果沒有指定 --rm 就會在容器被停止或執行離開後留下, | ||
+ | * 解決方式 | ||
+ | - 透過< | ||
+ | - 檢查如果有 crontab 設定自動啟動容器, | ||
==== 更新 docker compose 內相同 image 的最新版方式 ==== | ==== 更新 docker compose 內相同 image 的最新版方式 ==== | ||
* 參考 - https:// | * 參考 - https:// | ||
* 因為有很多使用的 image 都是 latest 的 tag , 簡單更新與移除舊 image 方式如下< | * 因為有很多使用的 image 都是 latest 的 tag , 簡單更新與移除舊 image 方式如下< | ||
- | docker-compose up --force-recreate --build -d | + | docker |
+ | docker | ||
docker image prune -f | docker image prune -f | ||
+ | </ | ||
+ | |||
+ | ==== 設定自動清除 docker log ===== | ||
+ | * 主要是建立 / | ||
+ | { | ||
+ | " | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | ==== 清除目前主機端未使用的 docker images ===== | ||
+ | * 先刪除已經 exited 狀態的 docker 程序< | ||
+ | docker rm $(docker ps -a -q -f status=exited) | ||
+ | </ | ||
+ | * <cli> | ||
+ | sudo docker system prune -a -f | ||
+ | docker volume ls -qf dangling=true | xargs --no-run-if-empty docker volume rm | ||
+ | </ | ||
+ | |||
+ | ==== 匯出與匯入 docker images ===== | ||
+ | * 當離線環境或自己 build 出的 image 就需要用到此功能 | ||
+ | * Exp. ai-gen-doc: | ||
+ | - 在來源主機匯出方式 <cli> | ||
+ | docker save -o ai-gen-doc-1.1.3.tar ai-gen-doc: | ||
+ | </ | ||
+ | - 在來源主機傳輸檔案到目標主機 <cli> | ||
+ | scp ai-gen-doc-1.1.3.tar [email protected]:/ | ||
+ | </ | ||
+ | * 到目標主機匯入方式 <cli> | ||
+ | docker load -i ai-gen-doc-1.1.3.tar | ||
</ | </ | ||
行 95: | 行 131: | ||
==== Container ==== | ==== Container ==== | ||
+ | * 想要 sh 進入操作有 ENTRYPOINT 的 image 容器 | ||
+ | * 啟動一個臨時容器, | ||
+ | * 進入一個啟動容器, | ||
* 查詢有哪些 docker container 存在 **docker ps --all**< | * 查詢有哪些 docker container 存在 **docker ps --all**< | ||
docker ps --all | docker ps --all |