在 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/bashdocker start [OPTIONS] CONTAINER [CONTAINER...]
-a:附加输出(显示容器日志)。-i:交互式启动。bash
docker start -a my_nginxdocker restart [OPTIONS] CONTAINER [CONTAINER...]
stop + start)。bash
docker restart my_nginxdocker-compose up [OPTIONS]
docker-compose.yml 文件启动多容器应用。-d:后台运行。--build:启动前重新构建镜像。bash
docker-compose up -ddocker 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/bashdocker 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 进入容器排查问题。根据需求选择合适的方法,灵活应对开发、测试和部署场景。