Docker
Docker 基于 Go 语言开发,是一个基于 LXC 技术之上构建的 Container 容器引擎。容器是一种以固定格式打包软件的方式,以便让软件可以在共享的操作系统中运行,不同于虚拟机,容器并不需要捆绑这个操作系统,只需要软件正常工作所必须的库和设置即可,这使得容器更加高效、轻量级、可以自成系统并且不管部署在什么地方都可以保证运行结果一致。
概念
Docker 由镜像(Image)、容器(Container)、仓库(Repository) 三部分组成。
镜像
镜像可以简单的类比为电脑装系统用的系统盘,包括操作系统,以及必要的软件。
Docker 镜像 是一个特殊的文件系统,除了提供容器运行时所需的程序、库、资源、配置等文件外,还包含了一些为运行时准备的一些配置参数(如匿名卷、环境变量、用户等)。镜像 不包含 任何动态数据,其内容在构建之后也不会被改变。
查看当前所有的镜像
$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
laradock-php-fpm latest 3f9514182cdd 20 hours ago 769MB
laradock-workspace latest 13be4b819932 20 hours ago 1.31GB
laradock-nginx latest 2092b501d031 21 hours ago 38MB
laradock-mysql latest 576a63b0cd7e 43 hours ago 592MB
docker 20.10-dind 4f666f62a6ef 3 days ago 336MB
laradock-redis latest 6f4c54cc20a9 6 days ago 111MB
laradock-phpmyadmin latest 85f19923c3fd 9 days ago 488MB
- REPOSITORY:仓库名称
- TAG: 镜像标签,其中 lastest 表示最新版本
- IMAGE ID:镜像唯一ID
- CREATED:创建时间
- SIZE:镜像大小
容器
容器可以简单理解为提供了系统硬件环境,
仓库
Docker 的仓库用于存放镜像,类似 Git。可以从中心仓库下载镜像,也可以从自建仓库下载。同时,我们可以把制作好的镜像 commit 到本地,然后 push 到远程仓库。仓库分为公开仓库和私有仓库,最大的公开仓库是官方仓库 Dock Hub。