Docker

Docker 下載

Docker 是一個開源平台,用於開發、交付和運行應用程式。Docker 使開發者能夠在一個隔離的環境(稱為 容器)中打包應用及其依賴,這樣可以確保應用在任何地方運行時都有一致的行為。Docker 是基於容器的虛擬化技術,與傳統的虛擬機不同,容器是輕量級的,啟動速度快,資源利用高效。

以下是 Docker 的詳細教學,幫助你快速掌握 Docker 的基本操作。


?‍? 一、什麼是 Docker?

Docker 是一個容器化平台,它允許開發者打包應用程序及其所有依賴(例如庫、配置等)為容器映像,然後可以在任何支持 Docker 的環境中運行。這樣一來,無論開發、測試、還是生產環境,應用的行為都可以保持一致。

容器 是輕量級的、獨立運行的單元,它們與其他容器共享主機操作系統的核心,這使得 Docker 容器更加高效。


? 二、如何安裝 Docker?

1️⃣ 在 Windows 上安裝 Docker

  1. 訪問 Docker 官網 並下載 Docker Desktop for Windows。
  2. 完成下載後,運行安裝程序,並按照提示完成安裝。
  3. 安裝完成後,啟動 Docker Desktop,Docker 會自動啟動並運行。
  4. 如果你使用的是 Windows 10 Home 版,需要啟用 WSL 2(Windows Subsystem for Linux)來運行 Docker,Docker Desktop 安裝過程會引導你設置 WSL 2。

2️⃣ 在 macOS 上安裝 Docker

  1. 訪問 Docker 官網 並下載 Docker Desktop for Mac。
  2. 完成下載後,運行 .dmg 文件並按照提示安裝。
  3. 安裝完成後,啟動 Docker Desktop,Docker 將自動啟動並運行。

3️⃣ 在 Linux 上安裝 Docker

  1. 打開終端,更新包索引:
    sudo apt update
    
  2. 安裝所需的包:
    sudo apt install apt-transport-https ca-certificates curl software-properties-common
    
  3. 下載並安裝 Docker 官方的 GPG 密鑰:
    curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
    
  4. 添加 Docker 的 APT 倉庫:
    sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
    
  5. 更新包索引並安裝 Docker:
    sudo apt update
    sudo apt install docker-ce
    
  6. 啟動並驗證 Docker 是否運行:
    sudo systemctl start docker
    sudo systemctl enable docker
    sudo docker --version
    

? 三、Docker 基本命令

1️⃣ 檢查 Docker 版本

安裝 Docker 完成後,可以檢查 Docker 版本來確認安裝成功:

docker --version

2️⃣ 啟動 Docker 服務

在 Linux 上,Docker 可能需要手動啟動服務:

sudo systemctl start docker

3️⃣ 拉取 Docker 映像

Docker 容器運行在映像上,這些映像是應用和其依賴的包。你可以從 Docker Hub(Docker 的公共映像倉庫)拉取映像。

例如,拉取官方的 nginx 映像:

docker pull nginx

4️⃣ 運行容器

使用已經拉取的映像來創建並運行容器。例如,運行 nginx 容器:

docker run -d -p 80:80 nginx
  • -d:讓容器在後台運行。
  • -p 80:80:將容器的端口 80 映射到主機的端口 80。

這樣,你就可以通過瀏覽器訪問 http://localhost,看到 nginx 的歡迎頁面。

5️⃣ 查看運行中的容器

查看當前運行的容器:

docker ps

6️⃣ 停止容器

要停止正在運行的容器,可以使用以下命令:

docker stop <容器ID或容器名稱>

例如:

docker stop 1234567890ab

7️⃣ 刪除容器

刪除停止運行的容器:

docker rm <容器ID或容器名稱>

8️⃣ 刪除映像

刪除不再需要的映像:

docker rmi <映像ID或映像名稱>

9️⃣ 查看容器日誌

如果需要查看容器的運行日誌,可以使用 logs 命令:

docker logs <容器ID或容器名稱>

? 四、Docker 進階操作

1️⃣ Dockerfile

Dockerfile 是一個文本文件,它包含了創建 Docker 映像的所有指令。通過 Dockerfile,你可以自動化映像的構建過程。

例如,創建一個簡單的 Dockerfile:

# 使用官方的 Node.js 映像作為基礎
FROM node:14

# 設置工作目錄
WORKDIR /app

# 拷貝當前目錄下的文件到容器中
COPY . .

# 安裝應用依賴
RUN npm install

# 暴露容器的端口
EXPOSE 3000

# 運行應用
CMD ["npm", "start"]

構建映像並運行:

docker build -t my-node-app .
docker run -d -p 3000:3000 my-node-app

2️⃣ Docker Compose

Docker Compose 是一個用來定義和運行多容器 Docker 應用的工具。你可以使用 YAML 文件來配置應用的服務,然後使用一條命令來啟動多個容器。

  1. 創建一個 docker-compose.yml 文件:
version: '3'
services:
  web:
    image: nginx
    ports:
      - "80:80"
  app:
    image: my-node-app
    ports:
      - "3000:3000"
  1. 使用 docker-compose 啟動所有服務:
docker-compose up
  1. 停止並刪除容器:
docker-compose down

3️⃣ Docker 網絡

Docker 容器可以連接到不同的網絡中。你可以創建自定義網絡,並讓容器之間進行通信。

創建自定義網絡:

docker network create my_network

運行容器並將其連接到自定義網絡:

docker run -d --name web --network my_network nginx
docker run -d --name app --network my_network my-node-app

? 五、常見問題與解決方法

1️⃣ Docker 容器無法啟動

如果容器無法啟動,請查看容器日誌來排查錯誤:

docker logs <容器ID>

2️⃣ 映像無法拉取

如果從 Docker Hub 拉取映像時出現問題,檢查網絡連接並確保 Docker Hub 正常工作。

3️⃣ Docker 容器過多

如果不再需要某些容器,請定期清理容器和映像:

docker system prune

這個命令會刪除所有停止的容器和不再使用的映像。


? 六、學習資源

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *