一、参数分类
| 分类 | 参数 | 作用 |
|---|
| 必需 | <镜像名> | 指定要运行的镜像 |
| -p <宿主端口>:<容器端口> | 外部访问服务(数据库、Web、API 等) |
| -e MYSQL_ROOT_PASSWORD=xxx(MySQL) | root 密码,否则无法登录 |
| 推荐 | --name <容器名> | 给容器起名字,方便管理 |
| -d | 后台运行 |
| -v <宿主路径>:<容器路径> | 数据持久化或文件挂载 |
| -e <KEY=VALUE> | 初始化配置(数据库、时区、字符集等) |
| --restart unless-stopped | 自动重启,保证服务持续运行 |
| 可选 | -it | 交互模式,用于调试 |
| --rm | 临时容器,退出自动删除 |
| --memory=<内存> | 容器内存限制 |
| --cpus=<数量> | CPU 限制 |
| --network <网络名> | 指定容器网络 |
| --hostname <主机名> | 容器内主机名 |
| <覆盖命令> | 覆盖镜像默认启动命令 |
二、镜像模板
1️⃣ MySQL 启动模板
docker run -d \
--name mysql8 \
-p 3306:3306 \
-v /data/mysql:/var/lib/mysql \
-e MYSQL_ROOT_PASSWORD=root \
-e MYSQL_DATABASE=parkofficesystem \
-e MYSQL_USER=park \
-e MYSQL_PASSWORD=123456 \
-e MYSQL_CHARSET=utf8mb4 \
-e TZ=Asia/Shanghai \
--restart unless-stopped \
mysql:8.0
2️⃣ Redis 启动模板
docker run -d \
--name redis8 \
-p 6379:6379 \
-v /data/redis:/data \
-e REDIS_PASSWORD=123456 \
-e TZ=Asia/Shanghai \
--restart unless-stopped \
redis:8.0 \
redis-server --requirepass 123456
3️⃣ Nginx 启动模板
docker run -d \
--name nginx \
-p 80:80 -p 443:443 \
-v /data/nginx/html:/usr/share/nginx/html \
-v /data/nginx/conf:/etc/nginx/conf.d \
-e TZ=Asia/Shanghai \
--restart unless-stopped \
nginx:latest
4️⃣ 任意镜像通用模板
docker run -d \
--name <容器名> \
-p <宿主端口>:<容器端口> \
-v <宿主目录>:<容器目录> \
-e KEY1=VALUE1 -e KEY2=VALUE2 \
--restart unless-stopped \
<镜像名> \
<覆盖命令>
<镜像名>:必填
<容器名>:推荐
<宿主端口>:<容器端口>:必需(服务访问)
<宿主目录>:<容器目录>:推荐(数据持久化)
<覆盖命令>:可选(调试或自定义启动)
三、常用管理命令
| 命令 | 作用 |
|---|
docker ps | 查看运行容器 |
docker ps -a | 查看所有容器 |
docker stop <容器> | 停止容器 |
docker start <容器> | 启动容器 |
docker restart <容器> | 重启容器 |
docker rm <容器> | 删除容器 |
docker logs -f <容器> | 查看实时日志 |
docker exec -it <容器> bash | 进入容器调试 |
docker images | 查看本地镜像 |
docker rmi <镜像> | 删除镜像 |
docker pull <镜像> | 拉取镜像 |
docker save -o <文件>.tar <镜像> | 导出镜像 |
docker load -i <文件>.tar | 导入镜像 |
docker system prune -a | 清理无用镜像、容器、网络 |