使用 docker run -d 可让容器后台运行,适合部署常驻服务;需配合 --restart=always、日志限制、卷挂载、资源限制等选项提升稳定性,并通过 docker ps、logs、exec 等命令验证与管理。

使用 docker run 启动容器时,加上 -d(detached)参数即可让容器在后台运行,适合部署常驻服务(如 Nginx、Redis、数据库等)。
基础用法:启动并脱离终端
执行以下命令后,Docker 会立即返回容器 ID,不占用当前终端:
docker run -d --name my-nginx -p 8080:80 nginx
此时容器已作为守护进程运行,可通过 docker ps 查看状态。
关键配套选项(提升稳定性与可观测性)
- --restart=always:确保容器意外退出或宿主机重启后自动恢复运行
- --log-driver=json-file --log-opt max-size=10m --log-opt max-file=3:限制日志体积,避免磁盘被撑满
- -v /host/path:/container/path:挂载配置或数据目录,实现配置持久化和数据落盘
- --memory=512m --cpus=1.0:限制资源使用,防止单个容器吃光系统资源
验证与日常管理
启动后建议立刻检查容器是否健康运行:
-
docker ps -a:确认容器状态为 Up,而非 Exited -
docker logs my-nginx:查看启动日志,排查初始化失败原因(比如端口冲突、配置错误) -
docker exec -it my-nginx sh:进入容器调试(适用于调试阶段,生产环境慎用)
常见问题注意点
- 前台进程必须持续运行:若容器内主进程退出(例如脚本执行完就结束),容器会立即停止。确保 CMD 或 ENTRYPOINT 是长运行命令(如
nginx -g "daemon off;") - 端口冲突会导致启动失败但可能静默退出:用
docker logs查看具体报错 - 挂载目录权限问题(尤其 Linux 主机):确保宿主机目录对容器内用户可读写,必要时调整 UID/GID 或使用
:z(SELinux)










