Docker的基础知识
Docker image & Docker container
Docker image: Docker镜像,是创建docker容器的基础,每个镜像对应的是一类容器的标准。类似于类和对象的概念。
Docker container: Docker容器,真正运行的实例。docker容器是在服务器中运行的一个个单独的进程。
容器 VS 虚拟机
容器在Linux上本地运行,并与其他容器共享主机的内核。他们是一个个单独的轻量级的进程。与之相比,虚拟机(VM)则是一个个单独的操作系统,拥有网卡,内存,cpu等等虚拟硬件,所以他们所需要的资源相对多。
Dockerfile & Docker image
Dockerfile是描述构建docker镜像的文件,Dockerfile中每一条指令都会在镜像上创建新的一层,每一个指令的前缀都必须是大写的。
使用 命令 docker build <option> <registry/repository/image>:<tag> . 创建docker image
[example~]:# docker build -t docker-registry.xxxx.com/xxxx/java8:latest .
- -t :指定要创建的目标镜像名
- Registry:公司统一的Docker Registry地址。
- Repository:镜像仓库,用来管理一类镜像。
- Image:具体某镜像的名称。
- tag:具体某镜像的标签。
-
. :Dockerfile 文件所在目录,可以指定Dockerfile 的绝对路径
Docker架构
Docker Engine
Docker Engine是一个客户机-服务器应用程序,包含以下主要组件:
- 服务器是一种长时间运行的程序,称为守护进程(dockerd命令)。
- 一个REST API,它指定了一些接口,程序可以使用这些接口与守护进程对话并指示它做什么。
- 命令行接口(CLI)客户机(docker命令)。
整体架构
Docker 客户端(Client) | Docker 客户端通过命令行或者其他工具使用 Docker API (https://docs.docker.com/reference/api/docker_remote_api) 与 Docker 的守护进程通信。 |
Docker 主机(Host) | 一个物理或者虚拟的机器用于执行 Docker 守护进程和容器。 |
Docker 守护程序(Deamon) | Docker守护进程(dockerd)监听Docker API请求,管理Docker对象,如镜像、容器、网络和卷。守护进程还可以与其他守护进程通信来管理Docker服务。 |
Docker 容器(Container) | 容器是独立运行的一个或一组应用。 |
Docker 镜像(Images) | Docker 镜像是用于创建 Docker 容器的模板。 |
Docker 仓库(Registry) | Docker 仓库用来保存镜像,可以理解为代码控制中的代码仓库。 Docker Hub(https://hub.docker.com) 提供了庞大的镜像集合供使用。 |