Docker 的基本概念
Docker 是一个开源的应用容器引擎,能够将应用程序及其依赖打包在一个可移植的容器中,并在任何支持 Docker 的平台上运行。下面是 Docker 的一些核心概念:
镜像(Image)
镜像就像是一个”模板”或者”快照”,包含了运行程序所需的一切。
# 查看本地有哪些镜像(就像查看你有哪些安装光盘)
docker images
# 从网上下载一个镜像(就像下载一个软件安装包)
docker pull nginx:latest容器(Container)
容器是镜像运行起来后的实例,就像用安装光盘安装好的系统。
# 用镜像创建一个容器并运行(就像用光盘安装系统)
docker run -d nginx:latest
# 查看正在运行的容器(就像查看正在运行的程序)
docker ps仓库(Repository)
仓库是存放镜像的地方,就像应用商店。
镜像与容器的关系
关系图:
镜像(Image)- 模板
├── 只读层 1
├── 只读层 2
└── 只读层 3
↓
容器(Container)- 运行实例
├── 只读层 1(来自镜像,不能修改)
├── 只读层 2(来自镜像,不能修改)
├── 只读层 3(来自镜像,不能修改)
└── 可写层(容器独有,可以修改)
关键点:
-
一个镜像可以创建多个容器
- 就像一张安装光盘可以安装多台电脑
- 每个容器都是独立的,互不影响
-
容器修改不影响镜像
- 容器中的修改只存在于可写层
- 删除容器后,修改会丢失
- 如果需要保存数据,需要使用数据卷
-
容器是镜像的运行实例
- 镜像 = 类(Class)
- 容器 = 对象(Object)