Lunski's Clutter

This is a place to put my clutters, no matter you like it or not, welcome here.

0%

Docker

容器化的主流工具。

Container 容器化

  1. 快速部署與一致性:Docker映像包含所有軟件依賴項,確保在多個平台上創建一致環境。
  2. 隔離與安全性:每個容器獨立運行應用程序皆使用自己資源,實現了最大的安全性和可靠性。
  3. 可伸縮性與便攜性:容器隔離環境,易於擴展。

在還沒Docker前我們可能要用VMWare開虛擬機, 耗費大量資源, 伸縮性也不佳。

Docker File 定義映像檔如何啟動

1
2
3
4
* From: Image
* COPY: to folder
* RUN: execude Linux cmd
* CMD: command to execude

映像檔

  • 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
2
3
4
* docker start $(sudo docker ps -a -q) 啟動所有容器
* docker stop $(sudo docker ps -a -q) 暫停所有容器
* docker start nginx 啟動容器
* docker stop nginx 暫停容器
  • 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


如果你覺得這篇文章很棒,請你不吝點讚 (゚∀゚)

Welcome to my other publishing channels