Docker是时下热门的容器技术,Docker是os层虚拟化架构(虚拟出来的操作系统和宿主机操作系统共享一个内核)的一种体现产品。
容器化技术(我们可以把tomcat,redis,nginx……安装docker容器中),可以方便对软件的环境(开发环境/测试环境/生产环境……)进行搬运,可以极大的减少部署成本。且各个容器之间是相互隔离的,减少软件之间的影响。
Docker 包括三个基本概念:
镜像(Image):Docker将应用程序及其所需的依赖、函数库、环境、配置等文件打包在一起,称为镜像。为一个只读模板。
容器(Container):镜像中的应用程序运行后形成的进程就是容器,只是Docker会给容器做隔离,对外不可见。容器可以被创建、启动、停止、删除、暂停等。
仓库(Repository):仓库用来保存镜像。
容器与镜像的关系类似于面向对象编程中的对象与类。
在安装好并启动了Docker之后,我们可以使用在命令行中使用Docker命令操作Docker,比如我们使用如下命令打印Docker的版本信息。
docker verion
其结果如下:
从上面的图中,我们看到打出了两个部分的信息:Client和Server。
这是因为Docker跟大部分服务端软件一样(如MySQL),都是使用C/S的架构模型,也就是通过客户端调用服务器,只是我们现在刚好服务端和客户端都在同一台机器上而已。
因此,我们可以使用下面的图来表示Docker的架构,DOCKER_HOST是Docker Server,而Clinet便是我们在命令中使用Docker命令。
Docker Server为客户端提供了容器、镜像、数据卷、网络管理等功能,其实,这些功能都是由Docker Engine来实现的。
1.dockerd:服务器守护进程。
2.Client docker Cli:命令行接口
3.REST API:除了cli命令行接口,也可以通过REST API调用Docker
1.查看是否已安装docker,如安装,卸载旧版本极其相关依赖
yum list installed | grep docker
yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine \
docker-ce
2.安装docker
yum install -y yum-utils
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
yum install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
3.启动及查看
systemctl start/status/stop docker
docker version
类似于maven仓库,集中存放镜像文件的场所,一个Registry中会有多个Repository
仓库Repository是对于其中的镜像进行分类管理,一个Repository中会有多个不同tag的Image
Registry分为公有(public)和私有(private)两种形式
最大的公有Registry是Docker Hub,存放了数量庞大的镜像供用户下载使用https://hub.docker.com
国内的公开Registry包括USTC、网易云、DaoCloud、AliCloud等
{
"registry-mirrors": ["https://docker.mirrors.ustc.edu.cn","https://hub-mirror.c.163.com","https://registry.docker-cn.com"]
}
systemctl daemon-reload systemctl restart docker