容器化的主流工具。
Container 容器化
- 快速部署與一致性:Docker映像包含所有軟件依賴項,確保在多個平台上創建一致環境。
- 隔離與安全性:每個容器獨立運行應用程序皆使用自己資源,實現了最大的安全性和可靠性。
- 可伸縮性與便攜性:容器隔離環境,易於擴展。
在還沒Docker前我們可能要用VMWare開虛擬機, 耗費大量資源, 伸縮性也不佳。
Docker File 定義映像檔如何啟動
1 | * From: Image |
映像檔
- docker search 搜尋想裝的 Docker Image
- docker pull 指 Docker Image 下載回 local
- docker images 顯示出在 local 下載了哪些 Docker Image
- docker build –tag node-docker . 生成鏡像
- docker run 使用 Docker Image 啟動執行 Docker Container
- docker container ls 或 docker ps 確認目前執行中的容器
- docker exec -it bash: runs a new command in a running container 如果要使用 foreground,我們則要使用 -it 這個參數 沒有加 -it ,基本上,只 run 一下,馬上就跳回來了
- docker rmi [OPTIONS] IMAGE [IMAGE…] 删除本地一个或多少镜像
基本操作
- docker history
操作歷史 - docker inspect
容器資訊 - docker –version 查看版本
- docker run –help 查看可使用操作
- docker COMMAND –help 查看所有指令
- docker info 查看狀態
- docker ps -a 查看所有容器
- docker stats 查看容器資源使用情況
- docker ps 查看運行的容器
- docker rename
重命名容器
1 | * docker start $(sudo docker ps -a -q) 啟動所有容器 |
- docker pause
暫停所有容器 - docker unpause
- docker restart
重啟容器 - docker ps 顯示了啟動了哪些的 Docker Container
-a 列出所有容器
-l 列出最後一次執行容器
- docker exec -it nginx bash 進入容器
- docker container stop 會優雅停止 (gracefully stop) 容器,若要強制關閉 (force shutdown) 容器,可用 docker container kill
- docker rm <277e632692e2>: Error response from daemon: conflict: unable to delete 7bc4c38be46a (must be forced) - image is being used by stopped container 277e632692e2 時使用
- docker rm nginx 刪除容器
- docker rm -f nginx 強制刪除容器
Docker logs
- docker logs -t my_container 查看帶時間戳的日誌
- docker logs –since 2024-06-25T15:00:00 my_container 查看從特定時間點後的日誌
Docker 管理容器儲存2種方式
Volume
不同容器間持久化分享- docker volume create my_volume 建立
- docker run -d -v my_volume:/data ubuntu 掛載卷到容器
- docker volume ls
- docker volume rm my_volume
Mount
可以熱加載,適合頻繁修改場景
Docker Network
- docker network ls
- docker network create my_network
- docker network connect my_network my_container
Docker Compose
- version 指定檔案的版本
- services 定義應用程式的服務
- image 指定要使用的 Docker 映像
- container_name 指定容器的名稱
- ports 指定容器要公開的埠
- volumes 指定要掛載到容器的卷
- environment 指定要設定的環境變數
- depends_on 指定此服務在啟動前需依賴的服務
- networks 指定此服務要加入的網路
- restart 指定容器的重啟策略
- healthcheck 指定容器的健康檢查
- logging 指定容器的日誌記錄
- build 指定如何建立容器映像
- command 指定容器啟動時要執行的命令
- working_dir 指定容器的工作目錄
- user 指定容器的使用者
- labels 指定容器的標籤
- volumes 定義應用程式要使用的卷
- build 指定如何建立容器映像
- context 指定建立映像的 Dockerfile 檔案所在的目錄
- dockerfile 指定要使用的 Dockerfile 檔案的名稱
- args 指定傳遞給 Dockerfile 檔案的引數
- build-args 指定傳遞給 docker build 命令的引數
- shm-size 指定共享記憶體的大小
- timeout 指定建立映像的超時時間
Play Ground
K8S
如果你覺得這篇文章很棒,請你不吝點讚 (゚∀゚)