在 Docker 中,docker run
是最核心的命令之一,用于创建并启动一个新的容器。它是从镜像(Image)实例化容器的关键操作。以下是详细解析:
docker pull
)。docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
IMAGE
:必需的镜像名称(如 ubuntu:20.04
或 nginx
)。COMMAND
:覆盖镜像默认的启动命令(如 /bin/bash
)。OPTIONS
:控制容器行为的参数(详见下文)。选项 | 作用 |
---|---|
-d |
后台运行(守护态) |
-it |
交互式终端(常搭配 /bin/bash ) |
--name |
为容器指定名称(如 --name my_container ) |
-p |
端口映射(主机端口:容器端口,如 -p 8080:80 ) |
-v |
挂载数据卷(主机目录:容器目录,如 -v /data:/app ) |
-e |
设置环境变量(如 -e MYSQL_ROOT_PASSWORD=123 ) |
--rm |
容器退出后自动删除 |
--network |
指定网络(如 --network=bridge ) |
docker run -it --name my_ubuntu ubuntu:20.04 /bin/bash
--rm
)。docker run -d -p 8080:80 --name my_nginx nginx
8080
端口会转发到容器的 80
端口。docker run -d -v /host/data:/container/data -e APP_ENV=prod my_app_image
命令 | 作用 | 区别 |
---|---|---|
docker create |
仅创建容器 | 不自动启动 |
docker start |
启动已存在的容器 | 需先有容器 |
docker exec |
在运行中的容器内执行命令 | 不创建新容器 |
docker run
每次都会创建新容器(重复使用需先删除旧容器或指定 --rm
)。--memory
、--cpus
等限制资源。CMD
或 ENTRYPOINT
会被覆盖(若指定 COMMAND
)。docker run --help
docker run --entrypoint /bin/bash IMAGE
(覆盖入口点)docker logs CONTAINER_ID
(需在 -d
模式下)通过灵活组合选项,docker run
能满足大多数容器化应用的启动需求。理解其参数是掌握 Docker 的关键一步!