一、最基础的启动
plain
复制代码
docker run <镜像名>
- 仅启动容器,不映射端口,不持久化数据
- 容器退出后数据会丢失
二、后台运行
plain
复制代码
docker run -d <镜像名>
-d → detached 模式,后台运行
- 常用于服务类镜像(MySQL、Redis、Nginx 等)
三、命名容器
plain
复制代码
docker run --name mycontainer <镜像名>
- 方便管理、停止、删除
- 例如
docker stop mycontainer
四、端口映射(外部访问)
plain
复制代码
docker run -p <宿主机端口>:<容器端口> <镜像名>
- Web 服务、数据库必须映射端口
- 多端口映射示例:
plain
复制代码
docker run -p 8080:80 -p 443:443 nginx
五、数据持久化(卷和目录挂载)
- 挂载宿主机目录
plain
复制代码
docker run -v /宿主机路径:/容器路径 <镜像名>
示例:
plain
复制代码
docker run -v /data/mysql:/var/lib/mysql mysql:8.0
- Docker 卷
plain
复制代码
docker volume create myvolume
docker run -v myvolume:/容器路径 <镜像名>
- 卷管理方便,可通过
docker volume ls 查看
六、环境变量配置
plain
复制代码
docker run -e KEY=VALUE <镜像名>
- 数据库镜像常用:
MYSQL_ROOT_PASSWORD
MYSQL_DATABASE
MYSQL_USER
MYSQL_PASSWORD
- Web 服务镜像常用:
TZ(时区)
APP_ENV、DEBUG 等自定义变量
七、重启策略
plain
复制代码
docker run --restart <策略> <镜像名>
no → 不自动重启(默认)
always → 容器停止或 Docker 重启都会自动启动
unless-stopped → 除非手动停止,否则自动启动
on-failure[:最大重试次数] → 出错自动重启
八、交互模式(进入容器)
plain
复制代码
docker run -it <镜像名> /bin/bash
-it → 交互模式 + 分配伪终端
- 适用于调试、临时测试
九、组合启动示例(生产环境通用模板)
plain
复制代码
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 <容器> |
查看日志 |
docker exec -it <容器> <命令> |
进入容器或执行命令 |
|
|
十一、镜像管理
| 命令 |
作用 |
docker pull <镜像> |
下载镜像 |
docker images |
查看本地镜像 |
docker rmi <镜像> |
删除镜像 |
docker save -o <文件>.tar <镜像> |
导出镜像 |
docker load -i <文件>.tar |
导入镜像 |
docker tag <镜像> <新镜像> |
镜像打标签 |
docker push <镜像> |
推送到仓库 |
|
|
十二、系统信息与清理
| 命令 |
作用 |
docker info |
查看 Docker 系统信息 |
docker version |
查看版本 |
docker system df |
查看磁盘占用 |
docker system prune -a |
清理无用镜像、容器、网络 |
|
|
十三、特殊启动选项
| 需求 |
参数 |
| 限制内存 |
--memory=1g |
| 限制 CPU |
--cpus=1.5 |
| 设置 hostname |
--hostname myhost |
| 指定网络 |
--network mynet |
| 连接多个网络 |
--network network1 --network network2 |
| 临时容器(退出自动删除) |
--rm |
|
|
💡 总结:
- 必需参数:镜像名、端口映射(服务类)、数据卷(持久化)
- 推荐参数:环境变量、重启策略、容器命名
- 可选参数:CPU/内存限制、网络配置、调试模式