一聚教程网:一个值得你收藏的教程网站

热门教程

后台运行 Docker 容器如何创建

时间:2026-08-14 13:07:48 编辑:袖梨 来源:一聚教程网

Docker容器后台运行必须有前台进程,否则会立即退出;-d参数仅实现分离模式,真正维持运行依赖PID=1进程持续存在,如redis、nginx最新镜像默认前台启动,而bash等短命命令会导致容器秒退。

直接用 docker run -d 就能创建后台运行的容器,但光加 -d 不够——容器得有前台进程撑着,否则秒退。

必须让主进程在前台持续运行

Docker 把容器里 PID=1 的进程当作“命脉”,它一停,容器立刻退出。比如 redisnginx 最新镜像默认就以前台模式启动(redis-server 本身不 daemonize,nginx -g "daemon off;"),所以 docker run -d redisdocker run -d nginx 能稳住。但如果你强行指定 bashsleep 10 这类短命命令,容器启动即退出。

基础创建命令示例

docker run -d --name my-redis -p 6379:6379 redis:7-alpine

这行命令做了四件事:

  1. -d:后台运行
  2. --name my-redis:起个名字,方便后续操作
  3. -p 6379:6379:把宿主机 6379 端口映射到容器
  4. redis:7-alpine:用指定镜像启动

关键配套项建议一起加上

  1. --restart=always:宿主机重启或容器崩溃后自动拉起
  2. -v /data/redis:/data:挂载数据目录,避免重启丢数据
  3. --memory=256m --cpus=0.5:限制资源,防止单个容器吃垮整机
  4. --log-opt max-size=10m --log-opt max-file=3:控制日志体积,不占满磁盘

启动后马上验证

  1. docker ps 看容器是否显示 Up 状态
  2. docker logs my-redis 检查有没有报错(比如端口被占、配置加载失败)
  3. docker exec -it my-redis redis-cli ping 测试服务是否真在响应

别依赖 Ctrl+P Ctrl+Qdocker attach 来“救活”一个本该后台跑却退出的容器——根本问题在启动命令没设对,得从镜像行为或 CMD 入手调整。

热门栏目