Docker 的打包及基本使用

Docker 的打包是將應用程序及其依賴項封裝到一個容器中,以便在任何支持 Docker 的環境中運行。

本教程將詳細介紹如何通過 Dockerfile 打包應用程序,並基本使用 Docker 容器。

Docker 的打包及基本使用_Docker

Docker 打包

創建 Dockerfile

Dockerfile 是一個文本文件,包含了一系列指令,用於自動化構建 Docker 鏡像。

以下是一個典型的 Dockerfile 示例:

# 使用 Python 3.9 作為基礎鏡像
FROM python:3.9-slim

# 設置工作目錄
WORKDIR /app

# 複製依賴文件
COPY requirements.txt .

# 安裝依賴
RUN pip install --no-cache-dir -r requirements.txt

# 複製應用程序代碼
COPY . .

# 暴露端口
EXPOSE 8000

# 設置啓動命令
CMD ["python3", "app.py"]
關鍵指令説明:
  • FROM:指定基礎鏡像。
  • ENV:設置環境變量。
  • RUN:執行命令(例如安裝依賴)。
  • WORKDIR:設置工作目錄。
  • COPY:將文件從主機複製到容器中。
  • EXPOSE:暴露容器端口。
  • CMD:設置容器啓動時執行的命令。

構建 Docker 鏡像

在 Dockerfile 所在目錄下創建requirements.txtapp.py

app.py內容如下:

from flask import Flask

# 創建 Flask 應用
app = Flask(__name__)

# 定義路由
@app.route('/')
def hello():
    return "Hello, Docker!"

# 啓動應用
if __name__ == '__main__':
    app.run(host='0.0.0.0', port=8000)

requirements.txt 內容如下:

Flask==2.3.2

並運行以下命令構建鏡像

docker build -t my-app .
  • -t my-app:為鏡像指定一個名稱(標籤)。
  • .:指定 Dockerfile 所在的目錄(當前目錄)。

驗證鏡像

構建完成後,可以通過以下命令查看本地鏡像:

docker images

如果看到 my-app 鏡像,説明構建成功。

Docker 基本使用

運行容器

使用構建的鏡像運行容器:

docker run -d -p 8000:8000 --name my-app-container my-app
  • -d:以守護進程模式運行容器。
  • -p 8000:8000:將主機的 8000 端口映射到容器的 8000 端口。
  • --name my-app-container:為容器指定一個名稱。
  • my-app:使用的鏡像名稱。

查看容器日誌

查看容器的日誌輸出:

docker logs my-app-container

進入容器

如果需要進入容器進行調試,可以使用以下命令:

docker exec -it my-app-container /bin/bash

停止和刪除容器

停止容器:

docker stop my-app-container

刪除容器:

docker rm my-app-container