前言
Docker 是当下主流的 Linux 容器化技术,能够实现应用快速部署、环境隔离、版本统一。本文整理 Windows、Linux、Mac 三大平台 Docker 安装步骤、镜像/容器核心命令、镜像源配置、数据卷、网络模式以及 Docker Compose 容器编排实战,附带常见问题解决方案,新手也可直接上手。
一、Docker 安装教程
1.1 Windows 系统安装 Docker Desktop
Windows 安装 Docker 依赖 WSL2 子系统,按照以下步骤依次操作:
步骤 1:开启系统功能
按下 Win + S 搜索 Windows 功能,勾选以下两项,完成后重启电脑:
- 适用于 Linux 的 Windows 子系统
- 虚拟机平台

步骤 2:配置 WSL2 为默认版本
以管理员身份运行 CMD,执行如下命令:
wsl --set-default-version 2
wsl --update --web-download

步骤 3:下载 Docker 安装包
根据自身 CPU 架构,前往官网下载对应版本安装包。

步骤 4:执行安装
- 双击安装包默认安装(默认路径 C 盘);
- 如需自定义安装目录,使用 CMD 执行以下命令:
start /w "" "Docker Desktop Installer.exe" install --installation-dir=D:\Develop\Docker
1.2 Linux(Ubuntu 24.04)安装 Docker
官方一键安装脚本地址:https://get.docker.com(需外网环境)
步骤 1:下载安装脚本
curl -fsSL https://get.docker.com -o install-docker.sh
步骤 2:执行安装
sudo sh install-docker.sh
步骤 3:启动 Docker 服务
sudo systemctl start docker
1.3 Mac 系统安装 Docker
Mac 端安装可参考其他相关教程,操作逻辑与 Windows 大体一致。
二、Docker 基础配置与常用命令
Docker 官方镜像仓库:Docker Hub
2.1 配置国内镜像加速源
国外镜像拉取速度缓慢,推荐配置国内镜像站,步骤如下:
步骤 1:编辑镜像配置文件
sudo vim /etc/docker/daemon.json
步骤 2:写入镜像源配置
{
"registry-mirrors": [
"https://docker.m.daocloud.io",
"https://mirror.ccs.tencentyun.com",
"https://docker.1panel.live",
"https://hub.rat.dev",
"https://docker.mirrors.ustc.edu.cn/",
"https://hub-mirror.c.163.com/"
]
}
步骤 3:重启 Docker 生效
# 重新加载系统配置
sudo systemctl daemon-reload
# 重启 Docker 服务
sudo systemctl restart docker
2.2 镜像相关命令
1)拉取镜像
语法:docker pull 镜像名[:版本号],不指定版本默认拉取 latest(最新版)
# 拉取最新版 Nginx
sudo docker pull nginx
# 完整写法(指定仓库、命名空间、版本)
sudo docker pull docker.io/library/nginx:latest
# 指定 CPU 架构拉取镜像
sudo docker pull --platform=xxx nginx
参数说明:
docker.io:Docker 官方镜像仓库地址library:官方公共命名空间nginx:latest:镜像名称 + 镜像版本
2)查看本地所有镜像
sudo docker images
3)删除镜像
语法:docker rmi 镜像ID/镜像名称
sudo docker rmi nginx
2.3 容器核心命令
1)创建并运行容器
docker create:仅创建容器,不启动docker run:创建并立刻运行容器
示例(Nginx 容器):
sudo docker run -d --name test_nginx -p 80:80 -v /blog/html:/usr/share/nginx/html nginx
参数详解:
-d:后台守护模式运行容器,不占用当前终端--name:自定义容器名称-p 宿主机端口:容器端口:端口映射,对外暴露服务-v 宿主机目录:容器目录:数据卷挂载,实现文件互通与数据持久化
2)数据卷(-v)详解
数据卷用于持久化容器数据,防止容器删除后数据丢失,分为两种挂载方式:
① 绑定挂载(指定宿主机真实目录)
sudo docker run -d -p 80:80 -v /blog/html:/usr/share/nginx/html nginx
注意:宿主机路径必须以
/或./开头,否则会被识别为命名卷。
② 命名卷(Docker 托管存储)
- 创建命名卷
sudo docker volume create nginx_html
- 挂载命名卷运行容器
sudo docker run -d -p 80:80 -v nginx_html:/usr/share/nginx/html nginx
- 查看命名卷真实存储路径
sudo docker volume inspect nginx_html
- 查看所有命名卷
sudo docker volume list
- 删除指定命名卷
sudo docker volume rm nginx_html
- 清理所有未被容器使用的卷
sudo docker volume prune -a
补充:命名卷首次使用时,会自动同步容器内目录文件;绑定挂载无此特性。
3)环境变量(-e)
使用 -e 向容器传递环境变量,以 MongoDB 为例:
sudo docker run -d \
--name my_mongo \
-p 27017:27017 \
-e MONGO_INITDB_ROOT_USERNAME=mongoadmin \
-e MONGO_INITDB_ROOT_PASSWORD=secret \
mongo
Windows 端连接 MongoDB 命令:
mongosh "mongodb://用户名:密码@服务器IP地址:27017"
4)查看容器状态
# 仅查看正在运行的容器
sudo docker ps
# 查看所有容器(运行+停止)
sudo docker ps -a
5)启动 / 停止容器
# 启动容器
sudo docker start test_nginx
# 停止容器
sudo docker stop test_nginx
6)查看容器详细信息
sudo docker inspect 容器ID/容器名称
7)删除容器
# 普通删除(仅支持已停止容器)
sudo docker rm test_nginx
# 强制删除(运行中容器也可删除)
sudo docker rm -f test_nginx
8)临时调试容器
alpine 是超轻量 Linux 镜像,常用于临时测试:
sudo docker run -it --rm alpine
参数:
-it:交互式终端,进入容器内部--rm:容器退出后自动删除
退出容器输入:exit
9)容器重启策略
# 容器无论手动停止/异常崩溃,都会自动重启
sudo docker run -d --restart always nginx
# 仅异常崩溃重启,手动停止后不再重启
sudo docker run -d --restart unless-stopped nginx
10)查看容器运行日志
# -f 实时追踪日志输出
sudo docker logs test_nginx -f
11)进入容器内部执行命令
- 直接在容器内执行命令
sudo docker exec 容器ID ps -ef
- 进入交互式终端(常用)
sudo docker exec -it 容器ID/容器名 /bin/bash
实操示例:
# 启动 Nginx 容器
sudo docker run -d --name test -p 8080:80 nginx
# 进入容器终端
sudo docker exec -it test /bin/bash
# 进入 Nginx 网页目录
cd /usr/share/nginx/html
补充:容器内系统为极简环境,缺少命令可通过包管理器安装:
Debian/Ubuntu 系列:apt update && apt install vim
CentOS 系列:yum install vim
三、Dockerfile 简介
Dockerfile 是镜像构建脚本,内部逐条记录镜像的制作流程与配置,可基于该文件自定义专属镜像。
四、Docker 网络模式
Docker 内置三种默认网络:bridge、host、none,同时支持自定义桥接网络。
4.1 bridge 桥接模式(默认)
容器间可通过网络名称/容器名互通,隔离宿主机网络。
1)创建自定义网络
sudo docker network create network1
2)将容器加入自定义网络(MongoDB)
sudo docker run -d \
--name my_mongodb \
--hostname mongo \
-e MONGO_INITDB_ROOT_USERNAME=admin \
-e MONGO_INITDB_ROOT_PASSWORD=123456 \
--network network1 \
mongo
3)部署可视化工具 Mongo-Express(同网络互通)
sudo docker run -d \
--name my_mongo_express \
-p 9000:8081 \
-e ME_CONFIG_MONGODB_SERVER=my_mongodb \
-e ME_CONFIG_MONGODB_ADMINUSERNAME=admin \
-e ME_CONFIG_MONGODB_ADMINPASSWORD=123456 \
--network network1 \
mongo-express
访问地址:服务器IP:9000,登录账号密码:admin / 123456
排坑提示:无法访问请检查服务器防火墙、云平台安全组、端口映射。
4.2 host 主机模式
容器直接共享宿主机网络,无需端口映射,容器服务占用宿主机端口:
sudo docker run -d --network host nginx
4.3 none 无网络模式
容器禁用所有网络连接,仅本地运行,无外网/内网通信能力。
4.4 网络管理命令
# 查看所有网络
sudo docker network list
# 删除自定义网络(默认网络无法删除)
sudo docker network rm 网络ID/网络名称
五、Docker Compose 容器编排
Docker Compose 用于批量管理多容器应用,通过 compose.yaml 配置文件一键启停整套服务。
5.1 compose.yaml 配置文件(MongoDB + Mongo-Express)
version: '3.8'
# 定义自定义网络
networks:
network1:
driver: bridge
# 定义多个服务(容器)
services:
# MongoDB 服务
my_mongodb:
image: mongo
container_name: my_mongodb
hostname: mongo
restart: unless-stopped
environment:
MONGO_INITDB_ROOT_USERNAME: admin
MONGO_INITDB_ROOT_PASSWORD: 123456
networks:
- network1
# 可视化客户端服务
my_mongo_express:
image: mongo-express
container_name: my_mongo_express
restart: unless-stopped
ports:
- "9000:8081"
environment:
ME_CONFIG_MONGODB_SERVER: my_mongodb
ME_CONFIG_MONGODB_ADMINUSERNAME: admin
ME_CONFIG_MONGODB_ADMINPASSWORD: 123456
networks:
- network1
depends_on:
- my_mongodb
5.2 Compose 常用命令
# 后台启动所有服务(读取当前目录 compose.yaml)
sudo docker compose up -d
# 停止并删除容器、网络
sudo docker compose down
# 仅停止容器,不删除
sudo docker compose stop
# 启动已存在的容器
sudo docker compose start
# 指定配置文件启动
sudo docker compose -f /file/compose.yaml up -d
六、常见问题解决方案
问题描述
电脑网络正常(QQ/微信可联网),但浏览器无法访问网页,WSL 环境也存在网络异常。
问题原因
使用代理工具后,Windows 自动代理/手动代理 未关闭,导致浏览器网络异常。
解决办法
- 打开 Windows 设置 → 网络和 Internet → 代理;
- 关闭 使用代理服务器 选项,保存配置即可。



结语
本文覆盖 Docker 从安装、基础命令、数据卷、网络到 Compose 编排的全流程内容,是入门与日常运维的常备手册。后续可基于 Dockerfile 自定义镜像、结合集群实现高阶部署。