Docker启动容器命令详解
Docker启动容器命令详解
乌龙茶在刚学运行docker容器的时候,只会死记硬背那些参数,不知道其中的含义。理解了其中的意思才能更好的运用,今天就把他们补上。
1.基本命令
一般来讲我们在运行容器的时候都大概是以下情况:
docker run [OPTIONS] IMAGE [COMMAND]
- 创建并启动容器-d
后台运行-it
交互式终端--name
指定容器名称-p
端口映射(主机端口:容器端口)-v
卷挂载(主机目录:容器目录)--restart
容器重启策略(no, on-failure, always, unless-stopped)
以下是 Docker run
命令中常用选项的全称和解释:
2. 常用运行选项(OPTIONS)详解
(1)-d
/ --detach
:后台运行容器
默认情况下,Docker 容器会占用当前终端。使用 -d
可以让容器在后台运行(detached mode)。
示例:后台运行 Nginx 容器
docker run -d --name my-nginx nginx
--name my-nginx
:给容器命名(否则 Docker 会随机分配一个名称)。
检查运行中的容器
docker ps
查看容器日志
docker logs my-nginx
(2)-it
:交互式运行容器
-it
是两个选项的组合:
-i
(--interactive
):保持 STDIN 打开,允许输入。-t
(--tty
):分配一个伪终端(TTY),使容器像本地终端一样交互。
示例:进入 Ubuntu 容器的 Shell
docker run -it --name my-ubuntu ubuntu /bin/bash
运行后,你会进入容器的终端,可以执行 ls
、cat
等命令。
退出容器
- 输入
exit
或Ctrl+D
退出并停止容器。 - 输入
Ctrl+P
+Ctrl+Q
退出但不停止容器(适用于后台运行)。
(3)-p
/ --publish
:端口映射
Docker 容器默认是隔离的,外部无法直接访问容器内的服务(如 Web 服务器)。使用 -p
可以将 主机端口 映射到 容器端口。
格式
-p <主机端口>:<容器端口>
示例:运行 Nginx 并映射端口
docker run -d -p 8080:80 --name my-web nginx
- 主机
8080
端口 → 容器的80
端口。 - 访问
http://localhost:8080
即可看到 Nginx 默认页面。
查看端口映射
docker port my-web
(4)-v
/ --volume
:数据卷挂载
Docker 容器的文件系统是临时的,容器删除后数据会丢失。使用 -v
可以将 主机目录 或 Docker 卷 挂载到容器中,实现数据持久化。
格式
-v <主机路径>:<容器路径>
示例 1:挂载主机目录
docker run -v /host/data:/container/data ubuntu
- 主机
/host/data
目录 → 容器的/container/data
。
示例 2:使用 Docker 卷
docker volume create my-vol # 创建卷
docker run -v my-vol:/app/data ubuntu
- 数据存储在 Docker 管理的卷
my-vol
中,即使容器删除,数据仍然存在。
查看数据卷
docker volume ls
(5)--restart
:容器重启策略
Docker 容器默认不会自动重启,但可以通过 --restart
设置重启策略:
选项 | 说明 |
---|---|
no | 默认,不自动重启 |
on-failure | 容器异常退出时重启 |
always | 总是重启(即使手动停止) |
unless-stopped | 除非手动停止,否则总是重启 |
示例:设置容器自动重启
docker run -d --restart unless-stopped --name my-nginx nginx
3. 其他常用运行选项
选项 | 说明 |
---|---|
--rm | 容器退出后自动删除(适合临时测试) |
-e / --env | 设置环境变量(如 -e MYSQL_ROOT_PASSWORD=123456 ) |
--network | 指定容器使用的网络(如 --network my-net ) |
--link | 连接其他容器(旧版方式,推荐用 --network ) |
示例:运行 MySQL 并设置密码
docker run -d --name my-mysql -e MYSQL_ROOT_PASSWORD=123456 mysql:8.0
4. 容器生命周期管理
命令 | 说明 |
---|---|
docker start <容器> | 启动已停止的容器 |
docker stop <容器> | 停止运行中的容器 |
docker restart <容器> | 重启容器 |
docker rm <容器> | 删除容器(需先停止) |
docker exec -it <容器> <命令> | 在运行中的容器中执行命令 |
示例:进入运行中的 Nginx 容器
docker exec -it my-nginx /bin/bash
5. 总结
docker run
是运行容器的核心命令,配合-d
、-it
、-p
、-v
等选项可以实现不同需求。- 后台运行 用
-d
,交互式终端 用-it
。 - 端口映射(
-p
)和 数据卷挂载(-v
)是生产环境必备技能。 - 使用
--restart
可以让容器自动重启,提高服务稳定性。
掌握这些命令后,你可以灵活地管理和运行 Docker 容器! 🚀