差異處
這裏顯示兩個版本的差異處。
兩邊的前次修訂版 前次修改 下次修改 | 前次修改 | ||
tech:docker [2014/11/10 22:47] – [參考網址] jonathan | tech:docker [2023/11/20 12:03] (目前版本) – [設定自動清除 docker log] jonathan | ||
---|---|---|---|
行 1: | 行 1: | ||
+ | ====== Docker 語法與操作整理 ====== | ||
+ | |||
+ | ===== 安裝程序 ===== | ||
+ | ==== Ubuntu 22.04 ==== | ||
+ | * 安裝語法 | ||
+ | * 標準安裝 <cli> | ||
+ | sudo apt-get update | ||
+ | sudo apt-get install ca-certificates curl gnupg | ||
+ | sudo install -m 0755 -d / | ||
+ | curl -fsSL https:// | ||
+ | sudo chmod a+r / | ||
+ | |||
+ | # Add the repository to Apt sources: | ||
+ | echo \ | ||
+ | "deb [arch=" | ||
+ | "$(. / | ||
+ | sudo tee / | ||
+ | sudo apt-get update | ||
+ | |||
+ | sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin | ||
+ | </ | ||
+ | |||
+ | ==== Ubuntu 20.04 ==== | ||
+ | * 安裝語法 | ||
+ | * 標準安裝 <cli> | ||
+ | curl -fsSL https:// | ||
+ | sudo add-apt-repository "deb [arch=amd64] https:// | ||
+ | sudo apt install docker.io docker-compose-plugin | ||
+ | </ | ||
+ | * 指定 docker 版本 <cli> | ||
+ | curl -fsSL https:// | ||
+ | sudo add-apt-repository "deb [arch=amd64] https:// | ||
+ | sudo apt-get install docker-ce=5: | ||
+ | </ | ||
+ | * 設定特定使用者使用 docker 權限 Exp. jonathan< | ||
+ | sudo usermod -aG docker jonathan | ||
+ | </ | ||
+ | * 安裝 rootless docker 方式< | ||
+ | curl -s https:// | ||
+ | dockerd-rootless-setuptool.sh install | ||
+ | </ | ||
+ | |||
+ | < | ||
+ | * 如果要在 rootless docker 讓 container 能夠 listen 1024 以下的 Port 需要執行 <cli> | ||
+ | sudo setcap cap_net_bind_service=+ep "/ | ||
+ | systemctl --user restart docker | ||
+ | </ | ||
+ | </ | ||
+ | |||
+ | ==== 更新 docker compose 內相同 image 的最新版方式 ==== | ||
+ | * 參考 - https:// | ||
+ | * 因為有很多使用的 image 都是 latest 的 tag , 簡單更新與移除舊 image 方式如下< | ||
+ | docker compose pull | ||
+ | docker compose up --force-recreate --build -d | ||
+ | docker image prune -f | ||
+ | </ | ||
+ | |||
+ | ==== 設定自動清除 docker log ===== | ||
+ | * 主要是建立 / | ||
+ | { | ||
+ | " | ||
+ | } | ||
+ | </ | ||
+ | ===== 開始下載與測試 Template ===== | ||
+ | * CentOS <code sh> | ||
+ | docker pull centos | ||
+ | </ | ||
+ | * Fedora <code sh> | ||
+ | docker pull fedora | ||
+ | docker run -i -t fedora /bin/bash | ||
+ | </ | ||
+ | * 輸入 exit 就可以結束與離開 | ||
+ | * 輸入 CTRL-p + CTRL-q 可以離開 (docker container 繼續在背景執行) | ||
+ | |||
+ | ===== 基本操作方式 ===== | ||
+ | ==== Image Template ==== | ||
+ | * 找目前 Internet 已存在的 Image Template **docker search < | ||
+ | docker search ubuntu</ | ||
+ | * 安裝 Image Template **docker pull <img tmp name> | ||
+ | docker pull centos</ | ||
+ | * 列出目前已安裝的 Image Template **docker images**< | ||
+ | docker images</ | ||
+ | * 刪除不需要的 Image Template **docker rmi <IMAGE ID> | ||
+ | docker rmi 2a973533a1af</ | ||
+ | * 建立自己的 Image Template **docker commit -m="< | ||
+ | docker commit -m=" | ||
+ | * 對 Image Template 增加 TAG **docker tag <IMAGE ID> < | ||
+ | docker tag dc30d39a01da tryweb/ | ||
+ | * 將 Image Template 存成檔案 **docker save <img tmp name> > <img tmp name> | ||
+ | docker save busybox > busybox.tar | ||
+ | </ | ||
+ | * 將 Image Template 檔案匯入 **docker load --input <img tmp name> | ||
+ | docker load --input busybox.tar | ||
+ | </ | ||
+ | |||
+ | < | ||
+ | * 顯示 Images 的 Digest < | ||
+ | * 顯示特定格式 Images 資訊 Exp. iiiorg/ | ||
+ | fcfbe89fe52a: | ||
+ | </ | ||
+ | </ | ||
+ | |||
+ | ==== Container ==== | ||
+ | * 查詢有哪些 docker container 存在 **docker ps --all**< | ||
+ | docker ps --all | ||
+ | </ | ||
+ | * 使用 bash 進入到運行中的 docker container **docker exec -it < | ||
+ | ~$ docker exec -it c789b6b5ee99 bash | ||
+ | bash-5.0# | ||
+ | </ | ||
+ | * 切換到運行中的 docker container **docker attach < | ||
+ | docker attach silly_hawking | ||
+ | </ | ||
+ | * 啟動離開(Exited)狀態的 docker container **docker start < | ||
+ | docker start 2522259349a9 | ||
+ | </ | ||
+ | * 查看 docker container 的 Console 訊息 **docker logs < | ||
+ | docker logs 2522259349a9 | ||
+ | </ | ||
+ | * 查看 docker container 的詳細資訊 **docker inspect < | ||
+ | docker inspect 2522259349a9 | ||
+ | docker inspect -f "{{ .NetworkSettings }}" 2522259349a9 | ||
+ | </ | ||
+ | * 備份 docker container <code sh> | ||
+ | |||
+ | </ | ||
+ | * 關閉啟動中的 docker container (成為離開狀態)**docker stop < | ||
+ | docker stop 2522259349a9 | ||
+ | </ | ||
+ | * 刪除已關閉(離開狀態)的 docker container**docker rm < | ||
+ | docker rm 2522259349a9 | ||
+ | </ | ||
+ | * 查看 image 內的相關訊息 **docker run -i -t < | ||
+ | docker run -i -t php: | ||
+ | </ | ||
+ | |||
+ | ===== 針對 docker compose 內其中一個 container 更改設定後重新啟動 ===== | ||
+ | * 參考 - https:// | ||
+ | * 處理方式 Exp. iii-devops-lite-ui< | ||
+ | docker-compose up -d --no-deps iii-devops-lite-ui | ||
+ | </ | ||
+ | |||
+ | ===== 預計測試項目 ===== | ||
+ | * DNS (named) | ||
+ | * Proxy (nginx) | ||
+ | * Web Server (apache+php) | ||
+ | * Mail Server (sendmail+MailScanner) | ||
+ | * [[tech: | ||
+ | * [[tech: | ||
+ | * SVN Server (subversion) | ||
+ | * DB Server (mysql / postgresql) | ||
+ | * File Server (ceph) | ||
+ | * docker mrtg howto | ||
+ | * docker container live migration howto | ||
+ | * [[tech: | ||
+ | * [[tech: | ||
+ | * [[tech: | ||
+ | |||
+ | ===== 參考網址 ===== | ||
+ | * http:// | ||
+ | * https:// | ||
+ | * https:// | ||
+ | |||
+ | {{tag> | ||