在 Docker 中启动容器有多种方法,以下是常用的几种方式及其适用场景的总结:
docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
-d
:后台运行(detached 模式)。--name
:为容器指定名称。-p
:端口映射(主机端口:容器端口
)。-v
:挂载数据卷(主机目录:容器目录
)。-e
:设置环境变量。--rm
:容器退出后自动删除。-it
:交互式终端(通常与 /bin/bash
结合使用)。bash
docker run -d --name nginx -p 80:80 nginx
docker run -it --rm ubuntu /bin/bash
docker start [OPTIONS] CONTAINER [CONTAINER...]
-a
:附加输出(显示容器日志)。-i
:交互式启动。bash
docker start -a my_nginx
docker restart [OPTIONS] CONTAINER [CONTAINER...]
stop
+ start
)。bash
docker restart my_nginx
docker-compose up [OPTIONS]
docker-compose.yml
文件启动多容器应用。-d
:后台运行。--build
:启动前重新构建镜像。bash
docker-compose up -d
docker container start CONTAINER
docker start
,推荐使用更明确的 docker container
子命令。docker attach CONTAINER
--sig-proxy=false
避免)。docker exec [OPTIONS] CONTAINER COMMAND [ARG...]
-it
:交互式终端。-e
:设置环境变量。bash
docker exec -it my_nginx /bin/bash
docker create [OPTIONS] IMAGE [COMMAND] [ARG...]
docker start
启动)。bash
docker create --name my_redis redis
docker start my_redis
方法 | 作用 | 是否创建新容器 |
---|---|---|
docker run |
创建并启动新容器 | 是 |
docker start |
启动已存在的容器 | 否 |
docker exec |
在运行中的容器内执行命令 | 否 |
docker-compose up |
通过 Compose 文件启动多容器 | 视配置而定 |
--rm
避免残留临时容器。docker-compose
或 Kubernetes 管理容器生命周期。exec -it
进入容器排查问题。根据需求选择合适的方法,灵活应对开发、测试和部署场景。