本文适配 CentOS 7+/RHEL、Ubuntu 20.04+ 主流 Linux 发行版,基于 Docker 官方稳定版编写,覆盖安装、镜像加速、核心操作、常用服务部署全流程,所有命令与配置均经过生产环境验证,可直接复制执行,内容精简聚焦核心需求,无冗余操作,适配网站阅读场景。
一、生产环境一键安装 Docker
采用 Docker 官方一键安装脚本,自动适配系统、配置官方软件源,无需手动处理依赖,直接复制执行即可。
bash
运行
# 1. 一键安装Docker官方稳定版
curl -fsSL https://get.docker.com | bash
# 2. 启动Docker服务并设置开机自启
systemctl enable --now docker
# 3. 验证安装是否成功
docker --version
docker info
二、安装后必做核心配置
1. 国内镜像加速配置(必做,解决镜像拉取慢 / 失败问题)
bash
运行
# 1. 创建/修改Docker配置文件
vi /etc/docker/daemon.json
# 2. 复制以下内容到文件中,保存退出
{
"registry-mirrors": [
"https://hub-mirror.c.163.com",
"https://mirror.baidubce.com",
"https://docker.mirrors.ustc.edu.cn"
],
"log-driver": "json-file",
"log-opts": {
"max-size": "100m",
"max-file": "3"
}
}
# 3. 重载配置并重启Docker生效
systemctl daemon-reload
systemctl restart docker
# 4. 验证加速配置是否生效
docker info | grep "Registry Mirrors"
2. 普通用户免 sudo 执行 Docker 命令(可选)
bash
运行
# 将当前用户加入docker用户组
sudo usermod -aG docker $USER
# 刷新用户组配置(无需重启服务器,重新登录终端即可生效)
newgrp docker
三、Docker 核心高频命令
所有命令均为生产环境日常运维最常用操作,带示例可直接复制修改使用。
1. 镜像操作命令
bash
运行
# 1. 拉取官方镜像(示例:拉取Nginx、MySQL 8.0、Redis最新稳定版)
docker pull nginx:latest
docker pull mysql:8.0
docker pull redis:latest
# 2. 查看本地所有镜像
docker images
# 3. 删除本地镜像
docker rmi 镜像ID/镜像名:版本号
# 4. 清理无用镜像,释放磁盘空间
docker image prune -af
2. 容器核心操作命令
bash
运行
# 1. 查看运行中的容器
docker ps
# 2. 查看所有容器(包括已停止的)
docker ps -a
# 3. 启动/停止/重启容器
docker start 容器ID/容器名
docker stop 容器ID/容器名
docker restart 容器ID/容器名
# 4. 删除容器
docker rm 容器ID/容器名
# 强制删除运行中的容器(谨慎使用)
docker rm -f 容器ID/容器名
# 5. 进入运行中的容器(排查问题必备)
docker exec -it 容器ID/容器名 /bin/bash
# 6. 查看容器实时日志(排查启动失败/业务报错必备)
docker logs -f 容器ID/容器名
# 查看最近100行日志
docker logs --tail 100 容器ID/容器名
四、生产级常用服务一键部署
所有部署命令均自带数据持久化、端口映射、基础安全配置,直接复制修改密码 / 目录即可启动,无需额外配置。
1. Nginx Web 服务部署
bash
运行
# 1. 创建数据持久化目录
mkdir -p /data/nginx/html /data/nginx/conf /data/nginx/logs
# 2. 一键启动容器
docker run -d \
--name nginx \
--restart always \
-p 80:80 \
-p 443:443 \
-v /data/nginx/html:/usr/share/nginx/html \
-v /data/nginx/conf:/etc/nginx/conf.d \
-v /data/nginx/logs:/var/log/nginx \
nginx:latest
2. MySQL 8.0 数据库部署
bash
运行
# 1. 创建数据持久化目录
mkdir -p /data/mysql/data /data/mysql/logs
# 2. 一键启动容器(替换MYSQL_ROOT_PASSWORD为你的强密码)
docker run -d \
--name mysql \
--restart always \
-p 3306:3306 \
-v /data/mysql/data:/var/lib/mysql \
-v /data/mysql/logs:/var/log/mysql \
-e MYSQL_ROOT_PASSWORD=你的强密码 \
-e TZ=Asia/Shanghai \
mysql:8.0 \
--character-set-server=utf8mb4 \
--collation-server=utf8mb4_general_ci \
--lower_case_table_names=1
3. Redis 缓存服务部署
bash
运行
# 1. 创建数据持久化目录
mkdir -p /data/redis/data /data/redis/conf
# 2. 一键启动容器(替换requirepass为你的Redis密码)
docker run -d \
--name redis \
--restart always \
-p 6379:6379 \
-v /data/redis/data:/data \
redis:latest \
redis-server --appendonly yes --requirepass 你的Redis密码
五、Docker Compose 一键安装与基础示例
Docker Compose 用于多容器服务编排,一行命令实现多服务统一启停,是生产环境容器化部署的核心工具。
1. 一键安装 Docker Compose
bash
运行
# 1. 下载官方稳定版(v2.27.0),自动适配系统架构
curl -SL https://github.com/docker/compose/releases/download/v2.27.0/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
# 2. 添加执行权限
chmod +x /usr/local/bin/docker-compose
# 3. 验证安装是否成功
docker-compose --version
2. 基础编排示例:Nginx+MySQL 统一部署
创建docker-compose.yml文件,复制以下内容,直接执行docker-compose up -d即可一键启动两个服务。
yaml
version: '3.8'
services:
nginx:
image: nginx:latest
container_name: nginx
restart: always
ports:
- "80:80"
- "443:443"
volumes:
- ./nginx/html:/usr/share/nginx/html
- ./nginx/conf:/etc/nginx/conf.d
- ./nginx/logs:/var/log/nginx
environment:
TZ: Asia/Shanghai
depends_on:
- mysql
mysql:
image: mysql:8.0
container_name: mysql
restart: always
ports:
- "3306:3306"
volumes:
- ./mysql/data:/var/lib/mysql
- ./mysql/logs:/var/log/mysql
environment:
MYSQL_ROOT_PASSWORD: 你的强密码
TZ: Asia/Shanghai
command:
--character-set-server=utf8mb4
--collation-server=utf8mb4_general_ci
--lower_case_table_names=1
Compose 核心命令
bash
运行
# 后台一键启动所有服务
docker-compose up -d
# 停止并删除所有服务
docker-compose down
# 查看服务运行状态
docker-compose ps
# 查看服务实时日志
docker-compose logs -f
六、高频排错核心命令
bash
运行
# 1. 查看容器资源占用(CPU/内存/磁盘)
docker stats
# 2. 查看容器详细配置与运行状态,排查启动失败问题
docker inspect 容器ID/容器名
# 3. 批量停止所有运行中的容器
docker stop $(docker ps -q)
# 4. 批量清理所有已停止的容器、无用镜像、网络
docker system prune -af
# 5. 查看Docker服务运行状态,排查服务启动失败问题
systemctl status docker
journalctl -u docker -f

