Docker安装教程


一、什么是Docker?

Docker 是一个开源的容器化平台,让开发者可以打包应用程序及其依赖项到一个可移植的容器中,然后发布到任何支持Docker的环境中,实现”一次构建,到处运行”。


二、Windows系统安装Docker

1. 系统要求

  • Windows 10 64位:专业版、企业版或教育版(需要开启Hyper-V)
  • Windows 11 64位:家庭版或专业版
  • 必须启用硬件虚拟化技术(在BIOS中开启)

1.1 打开控制面板,找到应用程序

430827ea2420e4791291df767ea44d05.png

1.2 点击启用或关闭Windows功能

00fa7f9378477458c06f288473543c54.png

2. 安装步骤

  1. 访问Docker官网下载页面:https://www.docker.com/products/docker-desktop

  2. 点击”Download for Windows”下载安装包

  3. 双击安装包,按照向导进行安装(默认选项即可)

  4. 安装完成后,Docker会自动启动,并在任务栏显示图标

  5. 打开命令提示符(CMD)或PowerShell,输入以下命令验证安装:

    1
    2
    docker --version
    docker run hello-world

3. 常见问题

  • 若提示Hyper-V未启用,可通过以下方式开启:
    1. 控制面板 → 程序 → 程序和功能 → 启用或关闭Windows功能
    2. 勾选Hyper-V相关选项,点击确定并重启电脑

三、macOS系统安装Docker

1. 系统要求

  • macOS 11或更高版本(Apple Silicon或Intel芯片均可)

2. 安装步骤

  1. 访问Docker官网下载页面:https://www.docker.com/products/docker-desktop

  2. 点击”Download for Mac”下载.dmg安装包

  3. 将下载的Docker拖入Applications文件夹

  4. 从应用程序中启动Docker,首次启动会提示输入密码

  5. 等待Docker启动完成(状态栏图标停止动画)

  6. 打开终端,输入以下命令验证安装:

    1
    2
    docker --version
    docker run hello-world

四、Linux系统安装Docker(以Ubuntu为例)

1. 卸载旧版本(如有)

1
sudo apt-get remove docker docker-engine docker.io containerd runc

2. 安装必要依赖

1
2
sudo apt-get update
sudo apt-get install ca-certificates curl gnupg lsb-release

3. 添加Docker官方GPG密钥

1
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg

4. 设置稳定版仓库

1
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

5. 安装Docker引擎

1
2
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io

6. 验证安装

1
2
sudo docker --version
sudo docker run hello-world

7. 配置非root用户使用Docker(可选)

1
2
3
sudo groupadd docker
sudo usermod -aG docker $USER
# 注销并重新登录使设置生效

五、Docker基本命令

  1. 查看Docker版本:

    1
    docker --version
  2. 检查Docker是否正常运行:

    1
    docker info
  3. 拉取镜像:

    1
    2
    docker pull [镜像名称]:[标签]
    # 示例:docker pull ubuntu:20.04
  4. 查看本地镜像:

    1
    docker images
  5. 运行容器:

    1
    2
    docker run [选项] [镜像名称] [命令]
    # 示例:docker run -it ubuntu:20.04 /bin/bash
  6. 查看运行中的容器:

    1
    docker ps
  7. 查看所有容器(包括停止的):

    1
    docker ps -a
  8. 停止容器:

    1
    docker stop [容器ID或名称]
  9. 启动已停止的容器:

    1
    docker start [容器ID或名称]
  10. 删除容器:

    1
    docker rm [容器ID或名称]
  11. 删除镜像:

    1
    docker rmi [镜像ID或名称]

六、卸载Docker

Windows/macOS

  • 直接从应用程序文件夹中删除Docker应用
  • 或通过系统设置中的”应用和功能”进行卸载

Ubuntu

1
2
3
sudo apt-get purge docker-ce docker-ce-cli containerd.io
sudo rm -rf /var/lib/docker
sudo rm -rf /var/lib/containerd

通过以上步骤,你可以在不同操作系统上成功安装和配置Docker,并开始使用容器化技术来部署和管理应用程序。


七、Docker Compose 进阶使用

Docker Compose 是 Docker 官方提供的工具,用于通过 YAML 文件定义和运行多容器 Docker 应用程序,简化多容器协调工作的配置与管理。

1. 安装 Docker Compose

Windows/macOS

Docker Desktop 已内置 Docker Compose,无需额外安装,验证安装:

1
docker compose version  # 注意:v2版本使用"docker compose",v1版本使用"docker-compose"

Linux

1
2
3
4
5
6
7
8
9
10
# 下载最新稳定版(可在https://github.com/docker/compose/releases查看最新版本)
sudo curl -L "https://github.com/docker/compose/releases/download/v2.20.3/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

# 赋予执行权限
sudo chmod +x /usr/local/bin/docker-compose

# 验证安装
docker-compose --version # v1版本
# 或
docker compose version # v2版本

2. 基本使用流程

  1. 创建项目目录

    1
    mkdir my-compose-app && cd my-compose-app
  2. 编写 docker-compose.yml 文件(核心配置文件):

    以下是一个包含 Nginx + 后端 API + MySQL 的示例:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    version: '3.8'  # Compose 文件版本,需与 Docker 版本兼容

    services: # 定义服务(容器)
    nginx:
    image: nginx:alpine
    ports:
    - "80:80" # 宿主机端口:容器端口
    volumes:
    - ./nginx/conf.d:/etc/nginx/conf.d # 挂载配置文件
    - ./html:/usr/share/nginx/html # 挂载静态文件
    depends_on: # 依赖关系,确保 api 先启动
    - api
    restart: always # 自动重启策略

    api:
    build: ./api # 从本地 Dockerfile 构建镜像
    environment: # 环境变量
    - DB_HOST=mysql
    - DB_PORT=3306
    - DB_USER=root
    - DB_PASS=123456
    depends_on:
    - mysql
    restart: unless-stopped # 除非手动停止,否则自动重启

    mysql:
    image: mysql:8.0
    volumes:
    - mysql-data:/var/lib/mysql # 命名卷,持久化数据
    environment:
    - MYSQL_ROOT_PASSWORD=123456
    - MYSQL_DATABASE=myapp
    ports:
    - "3306:3306"
    restart: on-failure # 失败时重启

    volumes: # 定义命名卷(持久化数据)
    mysql-data:
  3. 常用命令

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    # 启动所有服务(-d 后台运行)
    docker compose up -d

    # 查看服务状态
    docker compose ps

    # 查看服务日志(-f 实时跟踪)
    docker compose logs -f [服务名] # 如:docker compose logs -f api

    # 重启服务
    docker compose restart [服务名] # 不指定服务名则重启所有

    # 停止并删除容器、网络(保留数据卷)
    docker compose down

    # 停止并删除容器、网络、数据卷
    docker compose down -v

    # 构建并启动(适用于 Dockerfile 变更后)
    docker compose up -d --build

3. 进阶配置技巧

(1)网络配置

自定义网络实现服务间隔离与通信:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
version: '3.8'

services:
web:
image: nginx
networks:
- frontend # 加入 frontend 网络

api:
image: my-api
networks:
- frontend
- backend # 同时加入两个网络

db:
image: mysql
networks:
- backend # 仅在 backend 网络

networks: # 定义自定义网络
frontend:
driver: bridge # 桥接模式(默认)
backend:
driver: bridge

(2)环境变量管理

使用 .env 文件分离配置与代码:

1
2
3
# 在项目根目录创建 .env 文件
DB_PASSWORD=mysecretpassword
APP_PORT=8080

docker-compose.yml 中引用:

1
2
3
4
5
6
7
8
9
version: '3.8'

services:
api:
image: my-api
environment:
- DB_PASS=${DB_PASSWORD} # 引用 .env 文件中的变量
ports:
- "${APP_PORT}:8080"

(3)多环境配置

为开发、测试、生产环境创建不同配置:

1
2
# 开发环境:docker-compose.yml(默认)
# 生产环境:docker-compose.prod.yml

启动时指定配置文件:

1
2
# 合并默认配置与生产环境配置
docker compose -f docker-compose.yml -f docker-compose.prod.yml up -d

(4)健康检查

确保服务就绪后再对外提供服务:

1
2
3
4
5
6
7
8
9
services:
mysql:
image: mysql:8.0
healthcheck:
test: ["CMD", "mysqladmin", "ping", "-h", "localhost", "-u", "root", "-p$$MYSQL_ROOT_PASSWORD"]
interval: 10s # 检查间隔
timeout: 5s # 超时时间
retries: 5 # 重试次数
start_period: 30s # 启动后等待时间

4. 实战案例:部署 WordPress 博客

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
# docker-compose.yml
version: '3.8'

services:
wordpress:
image: wordpress:latest
ports:
- "8080:80"
environment:
- WORDPRESS_DB_HOST=db
- WORDPRESS_DB_USER=wpuser
- WORDPRESS_DB_PASSWORD=wppass
- WORDPRESS_DB_NAME=wpdb
volumes:
- wp-data:/var/www/html
depends_on:
- db
restart: always

db:
image: mysql:5.7
environment:
- MYSQL_ROOT_PASSWORD=rootpass
- MYSQL_DATABASE=wpdb
- MYSQL_USER=wpuser
- MYSQL_PASSWORD=wppass
volumes:
- db-data:/var/lib/mysql
restart: always

volumes:
wp-data:
db-data:

启动命令:

1
2
docker compose up -d
# 访问 http://localhost:8080 即可开始配置 WordPress

通过 Docker Compose,你可以轻松管理复杂的多容器应用,实现环境一致性和部署自动化,大幅提升开发与运维效率。


Docker安装教程
http://tanzipeng.github.io/p/dcd28d2170aa40ccbaa689df511d33bc/
作者
Tan ZiPeng
发布于
2025年9月11日
许可协议