Docker基本概念学习总结

Docker本身是一个容器运行载体或称之为管理引擎,基于Go语言开发的。我们把应用程序和配置依赖打包好,形成一个可交付的运行环境,这个打包好的运行环境,就是image镜像文件。只有通过这个镜像文件才能生成Docker容器。image文件可以看作是容器的模板。Docker根据image文件生成容器实例,同一个镜像文件,可以生成多个同时运行的容器实例。

Docker的三要素:镜像image,容器container,仓库repository

概念说明

Docker 镜像(Images)

Docker 镜像是用于创建 Docker 容器的模板,比如 Ubuntu 系统。

Docker 容器(Container)

容器是独立运行的一个或一组应用,是镜像运行时的实体。

Docker 客户端(Client)

Docker 客户端通过命令行或者其他工具使用 Docker SDK (https://docs.docker.com/develop/sdk/) 与 Docker 的守护进程通信。

Docker 主机(Host)

一个物理或者虚拟的机器用于执行 Docker 守护进程和容器。

Docker Registry

Docker 仓库用来保存镜像,可以理解为代码控制中的代码仓库。

Docker Hub(https://hub.docker.com) 提供了庞大的镜像集合供使用。

一个 Docker Registry 中可以包含多个仓库(Repository);每个仓库可以包含多个标签(Tag);每个标签对应一个镜像。

通常,一个仓库会包含同一个软件不同版本的镜像,而标签就常用于对应该软件的各个版本。我们可以通过 <仓库名>:<标签> 的格式来指定具体是这个软件哪个版本的镜像。如果不给出标签,将以 latest 作为默认标签。

Docker Machine

Docker Machine是一个简化Docker安装的命令行工具,通过一个简单的命令行即可在相应的平台上安装Docker,比如VirtualBox、 Digital Ocean、Microsoft Azure。

image文件生成的容器实例,本身也是一个文件,称之为镜像文件。

Docker 使用客户端-服务器 (C/S) 架构模式,使用远程API来管理和创建Docker容器。

一个容器运行一种服务,当我们需要的时候,就可以通过docker客户端创建一个对应的运行实例,也就是我们的容器。镜像就是Java里的类,而容器就是类的实例化对象,每个容器就是每个实例。

至于仓库,就是放着很多镜像的地方,类似maven的仓库,我们可以把镜像发布到仓库中,需要的时候,从仓库里拉下来就可以了。

Docker利用容器独立运行一个或者一组应用,容器是用镜像创建的运行实例。它可以被启动、开始、停止、删除。每个容器都是相互隔离的、保证安全的平台。Docker可以让开发者打包他们的应用以及应用的runtime环境,这个包很轻量级、可移植,发布到任何Linux机器上,也可以实现虚拟化。

容器其实就是一个精简版的Linux环境(包括root用户权限,进程空间、用户空间和网络空间等)和运行在其中的应用程序。

容器的定义和镜像几乎一模一样,也是一堆层的统一视角,唯一区别在于容器的最上面那一层是可读可写的。

 

Docker安装要求:Centos的安装,支持centos7(64bit)或者 centos 6.5(64bit)或更高版本。

Docker的应用场景:

1.web应用自动化打包和发布

2.自动化测试和持续集成、发布

3.在服务型环境中部署和调整数据库或者其他后台应用

 

docker的镜像都放到docker hub上面,也就是https://hub.docker.com,但是这个是国外的网站,访问速度很慢。国内就有一些厂商做了镜像加速,比较阿里云镜像加速、网易云加速等,他们把dockerhub上的镜像,克隆了一份放到自己的云上。这样国内,访问下载镜像速度就比较快了。

所以,一般要先配置下镜像加速配置,可以使用阿里云镜像加速或者网易云镜像加速。

1.登录阿里云,开通容器镜像服务https://cr.console.aliyun.com/cn-hangzhou/instances/

这里可以看到镜像加速器地址,已经对应的操作系统的配置说明

2.设置镜像加速地址,就是相当于配置镜像下载的仓库私服地址

我的Linux发行版本是Centos7(如果是其他发行版本,配置有所不同,请自行百度),编辑/etc/docker/daemon.json

把registry-mirrors,添加到json字符串里

3.重载配置并重启docker

systemctl daemon-reload

systemctl restart docker

 

4.来看看我们的helloworld实例,helloworld是docker提供的一个demo

 

5.运行hello-world镜像 :docker run hello-world

Hello from Docker!
This message shows that your installation appears to be working correctly.
输出以上这段日志以后,测试成功,hello-world容器就会自动停止。 

我们发现hello-world已经被下载下来了 

docker run的运行流程


版权声明:本文为u012373281原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。