管理和使用 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
)自行构建服务镜像,确保安全可控。 - 定期清理无用的容器和镜像,释放磁盘空间。
- 使用基础镜像(如
迷茫的人生,需要不断努力,才能看清远方模糊的志向!