安装
Linux (以Ubuntu为例)
sudo apt install apt-transport-https ca-certificates curl software-properties-common -y
sudo apt install docker-ce docker-ce-cli containerd.io -y
Windows
Docker在windows上使用需要使用wsl2功能,即windows的linux子系统。
开启wsl并安装ubuntu子系统
以管理员身份启动powershell后运行
wsl --install
wsl --install -d Ubuntu
查看版本是否正确:
wsl --list --verbose
输出:
NAME STATE VERSION
* Ubuntu Running 2
如果VERSION是1
启用子系统
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
检查运行 WSL 2 的要求
- 对于 x64 系统:版本 1903 或更高版本,内部版本为 18362.1049 或更高版本。
- 对于 ARM64 系统:版本 2004 或更高版本,内部版本为 19041 或更高版本。
启用虚拟机功能
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
下载 Linux 内核更新包
Linux 内核更新包安装最新版本的 WSL 2 Linux 内核
更新安装
wsl --set-default-version 2
wsl --set-version Ubuntu 2
检查Hyper-V是否开启
win+s搜索启用或关闭windows功能
启用Hyper-V,Docker服务就能正常运行了。
Docker的基本使用
镜像(Image)
镜像是一个只读模板,包含运行应用所需的所有内容:代码、运行时、库、环境变量和配置文件。
- 可以将其理解为应用的“快照”。
- 通常由
Dockerfile
构建。 - 示例:
nginx:latest
、python:3.11
。
容器(Container)
容器是镜像的运行实例。你可以在容器中运行、停止、修改和销毁应用。
- 容器是隔离的、轻量的运行环境。
- 可以多个容器基于同一个镜像运行,互不影响。
Dockerfile
一个文本文件,定义了如何构建一个镜像的所有步骤。
- 通过指令如
FROM
、RUN
、COPY
、CMD
等构建。 - 示例:
FROM python:3.11
WORKDIR /app
COPY . .
RUN pip install -r requirements.txt
CMD ["python", "main.py"]
Docker Compose
一个用于定义和管理多容器应用的工具,使用 docker-compose.yml
文件来配置应用的服务、网络、卷等。
- 适合部署一组相关的容器(如:Web 应用 + 数据库)。
- 启动命令简单:
docker compose up -d
。
卷(Volumes)
卷是 Docker 用于持久化和共享数据的一种方式,独立于容器的生命周期。
- 即使容器删除,卷中数据依然保留。
- 常用于挂载数据库数据、配置文件等。
网络(Networks)
Docker 使用网络将不同容器连接起来通信。常用类型包括:
bridge
:默认网络,容器间可以互相通信。host
:使用主机网络,性能高但不隔离。none
:无网络隔离,仅用于特殊用途。
常用 Docker 命令
命令 | 说明 |
---|---|
docker ps |
查看正在运行的容器 |
docker ps -a |
查看所有容器(包括停止的) |
docker images |
查看已下载的镜像 |
docker pull <镜像名> |
拉取镜像 |
docker run <选项> <镜像> |
运行一个容器 |
docker stop <容器ID> |
停止容器 |
docker rm <容器ID> |
删除容器 |
docker rmi <镜像ID> |
删除镜像 |
docker logs <容器ID> |
查看容器日志 |
docker exec -it <容器ID> /bin/bash |
进入容器内部交互式终端 |
docker compose up -d |
后台启动 docker compose 定义的服务 |
docker compose down |
停止并移除所有服务容器 |
打包当前 Python 项目环境为例
假设目录结构如下:
my_project/
├── app.py
├── requirements.txt
└── Dockerfile
app.py
是你的 Python 主程序。requirements.txt
是通过pip freeze > requirements.txt
导出的依赖列表。
创建 DockerFile
在项目根目录下新建 Dockerfile
:
# 使用官方 Python 基础镜像
FROM python:3.11-slim
# 设置工作目录
WORKDIR /app
# 复制当前目录的所有文件到容器内
COPY . .
# 安装依赖
RUN pip install --no-cache-dir -r requirements.txt
# 设置默认运行命令
CMD ["python", "app.py"]
# 构建镜像
docker build -t my-python-app .
# 运行容器
docker run --rm my-python-app
安装dify服务为例
克隆 Dify 代码仓库
克隆 Dify 源代码至本地环境。
git clone <https://github.com/langgenius/dify.git> --branch 0.15.3
启动 Dify
-
进入 Dify 源代码的 Docker 目录
cd dify/docker
-
复制环境配置文件
cp .env.example .env
-
启动 Docker 容器
docker compose up -d
更新 Dify
进入 dify 源代码的 docker 目录,按顺序执行以下命令:
Copy
cd dify/docker
docker compose down
git pull origin main
docker compose pull
docker compose up -d
自定义配置
编辑 .env
文件中的环境变量值。然后重新启动 Dify:
docker compose down
docker compose up -d