差異處
這裏顯示兩個版本的差異處。
| 兩邊的前次修訂版 前次修改 下次修改 | 前次修改 | ||
| tech:docker [2023/11/05 16:32] – 更新 docker compose 內相同 image 的最新版方式 jonathan | tech:docker [2025/09/25 12:33] (目前版本) – 設定使用者與權限 jonathan | ||
|---|---|---|---|
| 行 2: | 行 2: | ||
| ===== 安裝程序 ===== | ===== 安裝程序 ===== | ||
| - | ==== Ubuntu 22.04 ==== | + | ==== Ubuntu 22.04 / 24.04 ==== |
| * 安裝語法 | * 安裝語法 | ||
| * 標準安裝 <cli> | * 標準安裝 <cli> | ||
| 行 33: | 行 33: | ||
| sudo apt-get install docker-ce=5: | sudo apt-get install docker-ce=5: | ||
| </ | </ | ||
| + | |||
| + | ==== 設定使用者與權限 ==== | ||
| * 設定特定使用者使用 docker 權限 Exp. jonathan< | * 設定特定使用者使用 docker 權限 Exp. jonathan< | ||
| sudo usermod -aG docker jonathan | sudo usermod -aG docker jonathan | ||
| + | </ | ||
| + | sudo usermod -aG docker $USER | ||
| </ | </ | ||
| + | * 讓使用權限可以立即生效 <cli> | ||
| + | newgrp docker | ||
| + | </ | ||
| * 安裝 rootless docker 方式< | * 安裝 rootless docker 方式< | ||
| curl -s https:// | curl -s https:// | ||
| 行 47: | 行 54: | ||
| </ | </ | ||
| </ | </ | ||
| + | |||
| + | ==== 刪除已經不執行的 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 compose pull |
| + | docker compose up --force-recreate --build -d | ||
| docker image prune -f | docker image prune -f | ||
| + | </ | ||
| + | |||
| + | ==== 設定自動清除 docker log ===== | ||
| + | * 主要是建立 / | ||
| + | { | ||
| + | " | ||
| + | } | ||
| + | </ | ||
| + | |||
| + | ==== 設定透過 dockerhub proxy 抓取 image ===== | ||
| + | * 建立與設定 dockerhub proxy - [[tech/ | ||
| + | * 在 / | ||
| + | { | ||
| + | " | ||
| + | " | ||
| + | ] | ||
| + | } | ||
| + | </ | ||
| + | * 需要重啟 docker 服務才能生效 | ||
| + | * alpine< | ||
| + | service docker restart | ||
| + | </ | ||
| + | * ubuntu< | ||
| + | systemctl restart docker | ||
| + | </ | ||
| + | * 確認是否設定成功 < | ||
| + | * ++看範例訊息|< | ||
| + | iiidevops@librenms-37: | ||
| + | Client: | ||
| + | | ||
| + | | ||
| + | Debug Mode: false | ||
| + | | ||
| + | buildx: Docker Buildx (Docker Inc.) | ||
| + | Version: | ||
| + | Path: / | ||
| + | compose: Docker Compose (Docker Inc.) | ||
| + | Version: | ||
| + | Path: / | ||
| + | |||
| + | Server: | ||
| + | | ||
| + | Running: 8 | ||
| + | Paused: 0 | ||
| + | Stopped: 0 | ||
| + | | ||
| + | | ||
| + | | ||
| + | Backing Filesystem: extfs | ||
| + | Supports d_type: true | ||
| + | Using metacopy: false | ||
| + | Native Overlay Diff: true | ||
| + | userxattr: false | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | Volume: local | ||
| + | Network: bridge host ipvlan macvlan null overlay | ||
| + | Log: awslogs fluentd gcplogs gelf journald json-file local splunk syslog | ||
| + | | ||
| + | | ||
| + | | ||
| + | Init Binary: docker-init | ||
| + | | ||
| + | runc version: | ||
| + | init version: | ||
| + | | ||
| + | apparmor | ||
| + | seccomp | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | CPUs: 4 | ||
| + | Total Memory: 3.833GiB | ||
| + | Name: librenms-37 | ||
| + | ID: da124914-d83d-4aba-abe7-6c60d903f24c | ||
| + | | ||
| + | Debug Mode: false | ||
| + | | ||
| + | | ||
| + | 127.0.0.0/8 | ||
| + | | ||
| + | https:// | ||
| + | Live Restore Enabled: false | ||
| + | |||
| + | WARNING: No swap limit support | ||
| + | </ | ||
| + | |||
| + | |||
| + | ==== 清除目前主機端未使用的 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: | 行 221: | ||
| ==== Container ==== | ==== Container ==== | ||
| + | * 想要 sh 進入操作有 ENTRYPOINT 的 image 容器 | ||
| + | * 啟動一個臨時容器, | ||
| + | * 進入一個啟動容器, | ||
| * 查詢有哪些 docker container 存在 **docker ps --all**< | * 查詢有哪些 docker container 存在 **docker ps --all**< | ||
| docker ps --all | docker ps --all | ||