Docker 镜像启动参数对照表
| 参数类别 | 参数 | MySQL | Redis | Nginx | 任意镜像 | 说明 |
|---|---|---|---|---|---|---|
| 容器命名 | --name |
✅ 推荐 | ✅ 推荐 | ✅ 推荐 | ✅ 推荐 | 给容器起名字,方便管理 |
| 后台运行 | -d |
✅ 推荐 | ✅ 推荐 | ✅ 推荐 | ✅ 推荐 | 后台运行容器 |
| 端口映射 | -p <宿主>:<容器> |
✅ 必须(外部访问) | ✅ 必须(外部访问) | ✅ 必须(Web访问) | ✅ 必须(服务暴露端口) | 外部访问容器服务 |
| 数据卷 | -v <宿主>:<容器> |
✅ 必须(持久化数据) | ✅ 必须(持久化数据) | ✅ 推荐(挂载静态文件) | ✅ 可选 | 持久化数据或文件挂载 |
| 环境变量 | -e KEY=VALUE |
✅ 必须:MYSQL_ROOT_PASSWORD 推荐:MYSQL_DATABASE, MYSQL_USER, MYSQL_PASSWORD, MYSQL_CHARSET, TZ |
推荐:REDIS_PASSWORD, TZ |
推荐:TZ |
可选:自定义配置 | 设置容器初始化配置 |
| 重启策略 | --restart <策略> |
✅ 推荐:unless-stopped |
✅ 推荐 | ✅ 推荐 | ✅ 推荐 | 容器异常/系统重启时自动启动 |
| 交互模式 | -it |
✅ 可选(调试) | ✅ 可选(调试) | ✅ 可选(调试) | ✅ 可选 | 分配伪终端 + 交互模式 |
| 临时容器 | --rm |
可选 | 可选 | 可选 | 可选 | 容器退出自动删除 |
| CPU/内存限制 | --memory / --cpus |
可选 | 可选 | 可选 | 可选 | 资源限制 |
| 网络 | --network <网络名> |
可选 | 可选 | 可选 | 可选 | 指定容器网络 |
| Hostname | --hostname <名称> |
可选 | 可选 | 可选 | 可选 | 容器内主机名 |
| 命令覆盖 | <命令> |
可选:mysql -uroot -p |
可选:redis-server /etc/redis/redis.conf |
可选:nginx -g 'daemon off;' |
✅ 可选 | 覆盖镜像默认启动命令 |
MySQL 示例
ini
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
Redis 示例
ini
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
Nginx 示例
bash
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
任意镜像启动模板
xml
docker run -d \
--name <容器名> \
-p <宿主端口>:<容器端口> \
-v <宿主目录>:<容器目录> \
-e KEY1=VALUE1 -e KEY2=VALUE2 \
--restart unless-stopped \
<镜像名> \
<覆盖命令>
- 根据镜像文档填充环境变量和挂载路径
- 覆盖命令可选,如果需要调试或修改启动方式
使用技巧
- 数据持久化:MySQL、Redis 必须挂载数据卷,否则数据容器删除就丢失
- 初始化配置:环境变量方便一次性创建数据库/用户/密码
- 端口映射:Web 服务和数据库都要映射,便于宿主机和局域网访问
- 日志查看:
xml
docker logs -f <容器名>
- 进入容器:
bash
docker exec -it <容器名> bash