Docker概述与安装使用

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/cuiyaonan2000/article/details/102542581

序言

      “Docker”一词来自英国口语,意为码头工人(Dock Worker),即从船上装卸货物的人。

       有意思的是,Docker 公司起初是一家名为 dotCloud 的平台即服务(Platform-as-a-Service, PaaS)提供商。底层技术上,dotCloud 平台利用了 Linux 容器技术。为了方便创建和管理这些容器,dotCloud 开发了一套内部工具,之后被命名为“Docker”。Docker就是这样诞生的!
      2013年,dotCloud 的 PaaS 业务并不景气,公司需要寻求新的突破。于是他们聘请了 Ben Golub 作为新的 CEO,将公司重命名为“Docker”,放弃dotCloud PaaS 平台,怀揣着“将 Docker 和容器技术推向全世界”的使命,开启了一段新的征程。(从此也可以知道docker的应用场景,[email protected])

       多数技术人员在谈到 Docker 时,主要是指 Docker 引擎Docker 引擎是用于运行和编排容器的基础设施工具。有 VMware 管理经验的读者可以将其类比为 ESXi。ESXi 是运行虚拟机的核心管理程序,而 Docker 引擎是运行容器的核心容器运行时。其他 Docker 公司或第三方的产品都是围绕 Docker 引擎进行开发和集成的。

       Docker 引擎可以从 Docker 网站下载,也可以基于 GitHub 上的源码进行构建。无论是开源版本还是商业版本,都有 Linux 和 Windows 版本。Docker 引擎主要有两个版本:企业版(EE)和社区版(CE)。每个季度,企业版和社区版都会发布一个稳定版本。社区版本会提供 4 个月的支持,而企业版本会提供 12 个月的支持。社区版还会通过 Edge 方式发布月度版。

Docker开源项目(Moby)

        “Docker”一词也会用于指代开源 Docker 项目。其中包含一系列可以从 Docker 官网下载和安装的工具,比如 Docker 服务端和 Docker 客户端。不过,该项目在 2017 年于 Austin 举办的 DockerCon 上正式命名为 Moby 项目。由于这次改名,GitHub 上的 docker/docker 库也被转移到了 moby/moby,并且拥有了项目自己的 Logo.

        可以说Moby是Docker之母。通过Moby可以将定制化的组件打包做成一个Docker,而Moby就相当于一个组件仓库与Docker工厂。Docker公司的这一举动可以说也是顺应了潮流,将Docker与操作系统解耦,并且将其以组件组装的形式模块化。可以说今后,操作系统也是Docker容器的一个基础组件。而Moby项目既是一个组件库又是一个框架,为今后组件制作与组装提供了一套规范。(Moby是Docker的上游,用于组装Docker,Docker在用来应用.从2个项目的Logo上就可以看出来,Moby是个鲸鱼尾巴,而Docker是个鲸鱼[email protected])

Docker架构与流程

Docker的架构如下(粘贴复制自官网^_^)

从图上可以看出Docker分了3个大类,客户端,主机,仓库(注意都是复数),

  • Clients:就是用于接收连接Hosts的客户端,用于发送命令给Hosts执行
  • Hosts:用于接收Clients的命令,同时与远程仓库交互,同时屏蔽了不同的操作系统差异,提供了统一的API给Clients操作.(就是我们说的Docker守护进程)
  • Repositorys:存储了很多不同应用的镜像.当本地没有镜像的时候,会从远程仓库下载到本地.

如下是个简单的流程图途(也是从网上下的原址是:https://www.jianshu.com/p/2302ef03cfa2)

Actor可以看成是Clients,Docker Dameon是Hosts,官方仓库对应Repositorys.

应用于镜像的关系

容器与镜像的关系类似于面向对象编程中的对象与类。(在举例来讲Nginx就是个镜像,他的应用实例就是Nginx容器.这么描述感觉有点怪哈.在一般使用的时候一般我们会选择Linux的镜像,创建一个Linux的容器,然后在Linux的容器里面创建Nginx服务~~~~我觉得这么描述是不是要容易理解一点[email protected])

Docker属性 面向对象属性
容器 对象
镜像

安装tomcat用例

Centos7上安装Docker Client 和 Docker Service

这环境的安装其实很简单,主要是熟悉命令.具体可以参考https://www.runoob.com/docker/docker-tutorial.html

#Docker 要求 CentOS 系统的内核版本高于 3.10 ,查看本页面的前提条件来验证你的CentOS 版本是否支持 #Docker 。
#通过 uname -r 命令查看你当前的内核版本
[cuiyaonan2000@runoob ~]# uname -r 

#移除旧的版本
[cuiyaonan2000@runoob ~]# sudo yum remove docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-selinux \
                  docker-engine-selinux \
                  docker-engine

#安装需要的软件包, yum-util 提供yum-config-manager功能,另外两个是devicemapper驱动依赖的
[cuiyaonan2000@runoob ~]# sudo yum install -y yum-utils device-mapper-persistent-data lvm2

#设置yum源
[cuiyaonan2000@runoob ~]# sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

#更新yum 缓存
[cuiyaonan2000@runoob ~]# sudo yum makecache fast

#以查看所有仓库中所有docker版本,并选择特定版本安装
[cuiyaonan2000@runoob ~]# yum list docker-ce --showduplicates | sort -r

#由于repo中默认只开启stable仓库,故这里安装的是最新稳定版17.12.0
#也可以指定版本  例如:sudo yum install docker-ce-17.12.0.ce
[cuiyaonan2000@runoob ~]# sudo yum install docker-ce

#启动docker
[cuiyaonan2000@runoob ~]# sudo systemctl start docker

#加入开机启动
[cuiyaonan2000@runoob ~]# sudo systemctl enable docker


#验证安装是否成功(有client和service两部分表示docker安装启动都成功了)
[cuiyaonan2000@runoob ~]# docker version



 

创建Tomcat镜像实例

注意创建过得容器并不会消失,如果停用了可以使用docker ps -a 查看.然后使用docker start <name>启动.如果不能启动使用systemctl restart docker 后在启动就可以了.创建了当然也能删除塞.具体命令可以参考:https://www.runoob.com/docker/docker-container-connection.html.

#拉取官方的镜像
[cuiyaonan2000@runoob ~]# docker pull tomcat

#查看本地的镜像
[cuiyaonan2000@runoob ~]# docker images

# 创建镜像名称为tomcat的一个实例 -p指定端口映射 -d表示以守护线程运行
[cuiyaonan2000@runoob ~]# docker run --name mytomcat -p 8080:8080 -d tomcat

# 此命令用于查看 实例化的镜像容器
[cuiyaonan2000@runoob ~]# docker ps

#停止容器运行
[cuiyaonan2000@runoob ~]# docker stop mytomcat   

#启动一个已经存在的容器
[cuiyaonan2000@runoob ~]# docker start mytomcat

猜你喜欢

转载自blog.csdn.net/cuiyaonan2000/article/details/102542581