管理和使用 Docker 容器-创建交互式Docker容器
Docker 容器操作入门
1. 交互式启动并进入容器
-
命令:
docker run --name <容器名称> -it <镜像名称> - 示例:
docker run --name hello -it centos
- 示例:
-
参数解释:
--name
:为容器指定一个名称。例如hello
。-i
:以交互式方式运行容器。-t
:分配一个伪终端,方便操作。<镜像名称>
:启动容器所需的镜像名称,例如centos
。
-
执行效果:
- 运行后直接进入容器内部,获得一个交互式终端,通常是
bash
或其他 shell。 - 示例:进入容器后,显示类似以下内容:
[root@容器ID /]#
- 运行后直接进入容器内部,获得一个交互式终端,通常是
2. 拉取或加载镜像
- 如果本地没有所需镜像,可以通过以下两种方式获取:
- 从远程仓库拉取:
示例:docker pull <镜像名称> docker pull centos - 加载本地压缩镜像包:
示例:docker load -i <镜像文件> docker load -i centos.tar.gz
- 从远程仓库拉取:
- 注意:
- 如果从 Docker Hub 拉取镜像速度较慢,可以使用镜像加速器或加载提供的本地镜像包。
3. 容器启动后的操作
-
查看运行中的容器:
docker ps - 输出内容包括:
- 容器 ID
- 使用的镜像
- 容器启动命令
- 容器启动时间
- 容器名称
- 示例输出:
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES abc123def456 centos "/bin/bash" 10 seconds ago Up 10 sec hello
- 输出内容包括:
-
退出容器:
- 直接退出(容器停止):
exit - 容器退出后会停止运行,可通过
docker ps -a
查看已停止的容器。
- 容器退出后会停止运行,可通过
- 后台运行容器(建议使用守护式启动,见下文)。
- 直接退出(容器停止):
4. 守护式启动容器
-
命令:
docker run --name <容器名称> -dit <镜像名称> - 示例:
docker run --name hello -dit centos
- 示例:
-
参数解释:
-d
:以守护进程的方式运行容器,容器运行后不会自动进入交互式终端。- 其他参数与交互式启动保持一致。
-
进入运行中的容器:
docker exec -it <容器名称或ID> /bin/bash - 示例:
docker exec -it hello /bin/bash
- 示例:
-
特点:
- 即使退出容器,容器仍然保持运行状态,可随时重新进入。
5. 查看与管理容器
- 查看所有容器(包括已停止的):
docker ps -a - 启动已停止的容器:
docker start <容器名称或ID> - 停止运行中的容器:
docker stop <容器名称或ID> - 删除容器:
docker rm <容器名称或ID> - 强制删除:
docker rm -f <容器名称或ID>
- 强制删除:
6. 构建自定义镜像
- 基于基础镜像构建新镜像:
- 通常使用官方基础镜像(如
centos
),通过Dockerfile
构建自己的服务镜像。
- 通常使用官方基础镜像(如
- 推荐实践:
- 使用
Dockerfile
定义构建流程。 - 自行封装服务(如 Nginx、Tomcat)并存储在私有镜像仓库,确保安全性。
- 使用
7. Docker 常用命令速览
命令 | 作用 | 示例 |
---|---|---|
docker run |
启动容器 | docker run --name hello -it centos |
docker ps |
查看运行中的容器 | docker ps |
docker ps -a |
查看所有容器 | docker ps -a |
docker exec |
进入运行中的容器 | docker exec -it hello /bin/bash |
docker start |
启动已停止的容器 | docker start hello |
docker stop |
停止运行中的容器 | docker stop hello |
docker rm |
删除已停止的容器 | docker rm hello |
docker load |
加载本地镜像文件 | docker load -i centos.tar.gz |
docker save |
保存镜像为本地压缩包 | docker save -o centos.tar.gz centos |
容器操作的实际案例
案例一:交互式启动容器
- 启动一个基于
centos
镜像的容器:docker run --name hello -it centos - 进入容器后,执行操作,如查看系统版本:
cat /etc/os-release - 退出容器:
exit
案例二:守护式启动容器并进入
- 守护式启动容器:
docker run --name hello -dit centos - 查看正在运行的容器:
docker ps - 进入容器:
docker exec -it hello /bin/bash - 退出容器但保持运行:
exit
案例三:停止与删除容器
- 停止容器:
docker stop hello - 删除容器:
docker rm hello
总结
-
启动容器的方式:
- 交互式启动:
docker run -it
,适合调试和临时操作。 - 守护式启动:
docker run -dit
,适合长期运行的服务。 - 进入容器:
docker exec -it
或docker attach
。
- 交互式启动:
-
容器状态管理:
- 查看运行中的容器:
docker ps
- 查看所有容器(包括已停止的):
docker ps -a
- 停止和删除容器:
docker stop
、docker rm
- 查看运行中的容器:
-
最佳实践:
- 使用基础镜像(如
centos
)自行构建服务镜像,确保安全可控。 - 定期清理无用的容器和镜像,释放磁盘空间。
- 使用基础镜像(如
迷茫的人生,需要不断努力,才能看清远方模糊的志向!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?