全部学科
Python全栈
python
NodeJS全栈
nodejs
📅 2026-05-21 6 分钟 ✍️ juanwangdev

容器创建与启动

容器的创建与启动是 Docker 的基础操作,下面详细介绍。

创建容器

docker create 命令

创建容器但不启动:

Bash
# 创建容器
docker create --name my-nginx nginx:latest

# 输出容器 ID
a1b2c3d4e5f6...

# 查看创建的容器
docker ps -a --filter "name=my-nginx"

docker run 命令(创建并启动)

docker run = docker create + docker start

Bash
# 基本用法
docker run nginx:latest

# 指定名称
docker run --name my-nginx nginx:latest

# 后台运行
docker run -d --name my-nginx nginx:latest

# 端口映射
docker run -d --name my-nginx -p 8080:80 nginx:latest

# 挂载数据卷
docker run -d --name my-nginx -v /host/path:/container/path nginx:latest

# 设置环境变量
docker run -d --name my-mysql -e MYSQL_ROOT_PASSWORD=123456 mysql:8.0

前台与后台运行

前台运行(默认)

Bash
# 前台运行,容器日志输出到当前终端
docker run nginx:latest

# 特点:
# - 占用当前终端
# - Ctrl+C 会停止容器
# - 适合调试和查看日志

后台运行

Bash
# -d 参数后台运行
docker run -d --name my-nginx nginx:latest

# 特点:
# - 释放当前终端
# - 容器在后台持续运行
# - 使用 docker logs 查看日志

常用参数

完整参数示例

Bash
docker run -d \
  --name web-app \
  -p 8080:80 \
  -v /data/nginx/html:/usr/share/nginx/html \
  -e NGINX_HOST=example.com \
  --restart unless-stopped \
  --network bridge \
  nginx:latest

常用参数说明:

参数说明示例
-d后台运行-d
--name容器名称--name my-app
-p端口映射-p 8080:80
-v数据卷挂载-v /host:/container
-e环境变量-e KEY=value
--restart重启策略--restart unless-stopped
--network网络模式--network bridge
--cpusCPU 限制--cpus=1.5
--memory内存限制--memory=512m

运行交互式容器

Bash
# 运行交互式终端
docker run -it ubuntu:latest /bin/bash

# 输出
root@a1b2c3d4e5f6:/#

# 参数说明:
# -i: 保持标准输入打开
# -t: 分配伪终端

# 退出容器
exit
# 或 Ctrl+D

使用 -it 运行交互式容器,退出时 exit 会停止并退出容器。如果仅退出终端但保持容器运行,使用 Ctrl+P 然后 Ctrl+Q

要点总结

  • docker create 仅创建容器不启动,docker run 创建并启动
  • 前台运行占用终端,适合调试;后台运行(-d)释放终端,适合生产
  • docker run 支持端口映射、数据卷挂载、环境变量等配置
  • 交互式容器使用 -it 参数,分配伪终端保持输入
  • 生产环境建议指定 --name--restart 等参数保证可维护性
想在手机上练习这篇文章的配套题目?
使用微信卷王开发者小程序,打开首页顶部扫码功能识别二维码
← 上一篇 镜像查看与删除
下一篇 → 容器状态管理
扫码体验小程序
加载中
想在手机上刷题学习?
使用微信卷王开发者小程序,打开首页顶部扫码功能识别二维码