Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器或Windows机器上。
Docker 使用容器来创建、部署和运行应用程序。容器允许开发人员将应用程序与所有需要的部分(如库和其他依赖项)打包在一起,并将其作为一个包发送出去。
通过使用 Docker,开发人员可以确保应用程序在任何环境中都能以相同的方式运行,无论是开发环境、测试环境还是生产环境。
确保应用在不同环境中运行一致,避免"在我机器上可以运行"的问题。
容器启动速度快,秒级部署,提高开发和部署效率。
相比虚拟机,容器共享主机操作系统内核,资源占用更少。
Docker镜像是一个只读模板,包含创建Docker容器的指令。它类似于虚拟机的快照。
容器是镜像的运行实例。您可以使用Docker API或CLI创建、启动、停止、移动或删除容器。
Docker仓库用来存储镜像。Docker Hub是公共仓库,任何人都可以使用。
Docker使用客户端-服务器架构。Docker客户端与Docker守护进程通信,后者负责构建、运行和分发Docker容器。
| 特性 | Docker容器 | 传统虚拟机 |
|---|---|---|
| 启动速度 | 秒级 | 分钟级 |
| 性能 | 接近原生 | 有一定损耗 |
| 磁盘占用 | MB级别 | GB级别 |
| 隔离性 | 进程级别 | 系统级别 |
| 操作系统 | 共享主机内核 | 每个虚拟机独立OS |
将应用程序及其依赖环境打包成镜像,实现一次构建,到处运行。
每个微服务运行在独立的容器中,实现服务隔离和独立部署。
在CI/CD流程中使用Docker镜像,确保测试和生产环境的一致性。
在不同云平台间无缝迁移应用,避免供应商锁定。
# 拉取镜像
docker pull nginx
# 运行容器
docker run -d -p 80:80 nginx
# 查看运行中的容器
docker ps
# 查看所有镜像
docker images
# 构建镜像
docker build -t my-app .