Docker基本介绍

2023-06-01  本文已影响0人  我可能是个假开发

一、定义

Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。
解决了运行环境和配置问题的软件容器, 方便做持续集成并有助于整体发布的容器虚拟化技术。
容器是完全使用沙箱机制,相互之间不会有任何接口。

Docker 和传统虚拟化方式的不同:

二、核心概念

1.Docker镜像

类似于虚拟机镜像,可以理解为一个面向Docker引擎的只读模板,包含了文件系统。
例如:一个镜像可以包含一个完整的Ubuntu操作系统环境,可以把它称为一个Ubuntu镜像。镜像也可以安装了Apache应用程序,可以把它称为一个Apache镜像。
镜像是创建Docker容器的基础。通过版本管理和增量的文件系统,Docker提供了一套十分简单的机制来创建和更新现有的镜像,用户甚至可以从网上下载一个已经做好的应用镜像,并通过简单的命令就可以直接使用。

2.Docker容器

Docker容器(Container)类似于一个轻量级的沙箱,Docker利用容器来运行和隔离应用。
容器是从镜像创建的应用运行实例,可以将其启动、开始、停止、删除,而这些容器都是相互隔离、互不可见的。
可以把容器看做一个简易版的Linux系统环境(包括root用户权限、进程空间、用户空间和网络空间等),以及运行在其中的应用程序打包而成的应用盒子。
镜像自身是只读的。容器从镜像启动的时候,Docker会在镜像的最上层创建一个可写层,镜像本身将保持不变。

容器与镜像的关系类似面向对象编程中的对象和类

3.Docker仓库

https://hub.docker.com/

Docker仓库(Repository)类似于代码仓库,是Docker集中存放镜像文件的场所。
注册服务器:Registry
注册服务器是存放仓库的地方,其上往往放着多个仓库。每个仓库集中存放某一类镜像,往往包括多个镜像文件,通过不同的标签(tag)来进行区分。
根据所存储的镜像公开分享与否,Docker仓库可以分为

4.总结

Docker 本身是一个容器运行载体或称之为管理引擎。我们把应用程序和配置依赖打包好形成一个可交付的运行环境,这个打包好的运行环境就是image镜像文件。只有通过这个镜像文件才能生成Docker容器实例(类似Java中new出来一个对象)。image文件可以看作是容器的模板。Docker 根据 image 文件生成容器的实例。同一个 image 文件,可以生成多个同时运行的容器实例。

三、Docker安装

官网:www.docker.com
Linux安装:

$ sudo wget -qO- https://get.docker.com/ | sh 
安装docker本身
sudo:当前用户是普通用户,但执行该命令时使用root身份执行
wget:命令行下载工具
-q:使wget输出不要那么多
O-:把wget的输出直接输出到标准输出,而不是输出到文件
|:管道 
| sh:把输出交给sh

$ sudo usermod -aG docker xxx  
允许非root用户(非superuser)来运行docker
修改用户组,把这个用户组加入到docker组里面(用户如果在docker组里,则可以不用sudo,不需要root就可以执行docker命令)

检查是否安装成功:docker info
如果执行此命令报错,则是docker没有启动,在centos中,使用

service docker start
安装docker.png 查看信息.png

四、Docker架构

1.Docker结构

image.png

Docker是一个Client-Server架构的系统,Docker守护进程运行在主机上,通过socket连接从客户端访问,守护进程从客户端接受命令并管理运行在主机上的容器。

docker架构.png 架构.png

客户端和守护进程进行操作,把命令送给守护进程,守护进程拖取镜像,运行容器并和远端的镜像仓库进行交互。

2.Docker运行的基本流程

docker架构.png
上一篇下一篇

猜你喜欢

热点阅读