目录
- 1. 概念
- 2. 主要理念(优点)
- 3. 容器与虚拟机的区别
- 4. Docker 基本常用命令
- 查看版本信息
- 显示系统信息
- 帮助命令
- 镜像命令
- 拉取镜像
- 查看本地镜像列表
- 删除镜像
- 容器命令
- 运行容器
- 查看正在运行的容器
- 查看所有容器(包括未运行的)
- 停止容器
- 重启容器
- 进入容器
- 删除容器
- 数据卷命令
- 创建数据卷
- 查看数据卷
- 删除数据卷
1. 概念
容器化部署是一种现代的软件开发和部署方法,它通过将应用程序及其依赖环境打包在容器中,实现了快速、可移植和一致性的部署
2. 主要理念(优点)
- 环境一致性:容器化技术如Docker确保了从开发到测试再到生产环境的无缝迁移。由于容器包含了应用程序及其运行环境,因此可以在任何支持Docker的环境中一致地运行,消除了因环境不一致导致的问题
- 轻量级和快速:与传统的虚拟机相比,容器更加轻量级,启动速度更快,资源利用率更高。容器共享宿主机的操作系统内核,无需为每个应用程序都运行一个完整的操作系统,因此占用的系统资源更少
- 可移植性:容器化技术允许开发人员将应用程序及其环境打包成一个独立的单元,这个单元可以在任何支持容器技术的机器上运行,无论是物理机、虚拟机还是云服务器
- 隔离性:容器之间是相互隔离的,这意味着一个容器的崩溃或失败不会影响到其他容器。这种隔离性不仅提高了系统的稳定性,也增强了安全性
- 敏捷开发和部署:容器化技术支持敏捷开发和持续集成/持续部署(CI/CD)流程。容器可以快速创建、更新和销毁,使得部署新版本的应用程序变得更加迅速和高效
- 微服务架构:容器化部署天然适合微服务架构。每个微服务可以打包在一个容器中,独立部署、扩展和更新,而不会影响到其他服务
- 资源限制和管理:容器化技术允许对容器内的资源使用进行限制和管理,例如CPU、内存和存储空间,这有助于优化资源分配和性能
- DevOps文化:容器化技术促进了DevOps文化的形成,通过自动化和标准化流程,打破了开发与运维之间的壁垒,提高了协作效率
3. 容器与虚拟机的区别
虚拟机(VM):
- VM通过创建一个完整的操作系统环境来模拟硬件。每个VM都运行自己的操作系统,拥有自己的内核和硬件资源(如CPU、内存、存储等)
- VM提供了完全隔离的环境,不同的VM之间互不干扰,安全性较高
- VM的启动和运行比较慢,因为需要加载完整的操作系统和应用程序
- VM的硬件资源开销较大,每个VM都需要分配独立的资源
容器:
- 容器共享宿主机的操作系统内核,不需要为每个应用程序都运行一个完整的操作系统,只需运行应用程序及其依赖的环境
- 容器之间是隔离的,但共享宿主机的内核和某些资源,因此启动和运行速度更快,资源利用率更高
- 容器提供了轻量级的隔离环境,适合运行同一类型的应用程序,例如微服务架构
- 容器之间的隔离不如VM彻底,因此在安全性要求极高的场景下,可能需要额外的安全措施
4. Docker 基本常用命令
查看版本信息
docker version
显示系统信息
docker info
帮助命令
docker --help
镜像命令
拉取镜像
docker pull 镜像名
查看本地镜像列表
docker images
删除镜像
docker rmi 镜�ID/镜像名
容器命令
运行容器
docker run -itd --name 容器名 镜像名
查看正在运行的容器
docker ps
查看所有容器(包括未运行的)
docker ps -a
停止容器
docker stop 容器ID/容器名
重启容器
docker restart 容器ID/容器名
进入容器
docker exec -it 容器ID/容器名 /bin/bash
删除容器
docker rm 容器ID/容器名
数据卷命令
创建数据卷
docker volume create
查看数据卷
docker volume ls
删除数据卷
docker volume rm 数据卷名