Docker入门

一:什么是docker容器技术?
在docker未出现之前,我们若需要拥有多个不同的应用环境,安装多个应用,只能拥有多台或者虚拟多台服务器去实现,这对资源的要求与损耗是非常巨大的,docker的出现解决了这个困境,它是一种开源的虚拟化容器技术,可以让开发者打包他们的应用、依赖包、环境配置等到一个轻量级、可移植的容器中,他是一种类似于集装箱的实现,在一个服务器上,可以安装多个集装箱,每个集装箱内部,都是一套完整的应用环境,每个集装箱是动态共享主机的资源的,但是每个集装箱中的资源使用等情况是隔离的。

在这里插入图片描述

二:该技术实现的原理是什么?
Docker技术的实现与应用,主要基于三大块:容器、镜像、仓库,docker架构是一种C/S架构的的实现,开发人员在自己的编译环境中基于源码生成容器安装包即镜像,该镜像包主要包含了实现功能需要的源码、编译环境以及依赖,镜像生成后,会上送到镜像存储的服务器,即仓库,当前市场上有多种可使用的仓库,一种是公共仓库,比如docker官网的仓库:https://hub.docker.com/,国内较大的云厂商提供的仓库,比如阿里云的仓库,另一种是私有的仓库,使用者可以根据自己的需要自己搭建仓库环境。送到仓库后,哪个环境需要安装该镜像,就下载安装,安装后的镜像,就会形成容器,所以容器实际是镜像的实体展现。
那么docker到底是怎么运行的呢?Docker运行的底层原理,是利用linux的cgroups和namespace的特性,把容器当做一个系统的进程,进行资源分配跟隔离。Cgroups叫做控制组(Control Groups),主要是对linux下的资源进行分配限制,防止出现多容器情况下资源的竞争 ,Namespace叫做命名空间,一个namespace看上去就像是一个linux系统,通过namespace,把原有的空间隔离成多个空间。
Docker能实现轻量级的部署,还离不开的是docker使用的分层镜像系统,他采用联合文件系统AUFS实现的原理,最底层使用仅可读的镜像层,如果有修改下发,就在镜像层上面生成一个空的容器层存储修改动作,然后展示给视图层展示,每增加一次修改,就叠加一层容器层,以原有的容器层跟镜像层为新的镜像层(见下图);设备读取的时候从上往下依次读取,具体的表现就是Dockerfile的运行过程。

在这里插入图片描述

三:该技术是怎么用的呢?
1、Docker的运行架构:
Docker在运行时主要由docker引擎与客户端工具组成,docker引擎是docker的守护进程,docker工作过程中,通过CLI执行对应的请求命令,通过REST API发送给守护进程,进程解析命令,调用对应的对象执行。
在这里插入图片描述

为了让docker镜像构建容器的过程自动执行,docker用到了一个Dockerfile的命令集文本,可以在其中调用任何可在linux下执行的指令。具体可以参见docker官网对dockerfile命令格式的要求:https://docs.docker.com/reference/dockerfile/
在这里插入图片描述

Docker常用的命令可以参见:docker --help查看具体的命令使用
2、Docker的网络管理:
Docker支持三种模式的网络管理:Bridge(桥接)模式、Host模式、自定义模式;
Bridge模式是最常用的网络模式,也是当前docker的默认网络模式,服务安装后,他会默认生成一个docker0网段为172.17.0.0/16的网桥,然后每启动一个容器,就会创建一对网卡,这对网卡一个在主机上,一个在容器内部,然后容器之间通信就通过docker0进行通信,docker0就相当于一个交换机。
在这里插入图片描述

Host模式:host模式下,容器不再拥有自己的网络空间,而是与主机共享网络空间,容器的ip与主机的ip是在同一网段,各个容器的网络都是互通的;
自定义模式:docker会拥有自己的网络空间,不与主机共存,在该模式下的容器,不会被分配网卡、ip、路由相关信息,是与外部网络完全隔离的,只有本地的localhost地址。不同容器网段进行通信,需要使用docker network配置网络连接关系。
3、Docker的容器编排:
Docker的容器编排工具分为两种模式,一种是单机模式下的容器编排,一种是集群模式下的容器编排,容器编排主要是对容器生命周期进行管理的行为。
Docker compose:单机模式下的容器编排,他是通过创建docker-compost.yml的文件来定义一台服务器上多个容器运行所需的各种配置信息。
在这里插入图片描述

Docker-compose的安装:
(1)下载docker-compose版本:(时间较长,耐心等待)
sudo curl -L “https://github.com/docker/compose/releases/download/v2.5.1/docker-compose- ( u n a m e − s ) − (uname -s)- (unames)(uname -m)” -o /usr/local/bin/docker-compose
(2)对docker-compose赋予可执行权限:chmod +x /usr/local/bin/docker-compose
(3)创建软链接:ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
(4)查看是否安装成功:docker-compose --version
Swarm:集群模式下的docker容器编排,是docker公司推出来的docker集群管理的平台,swarm集群分为管理节点和工作节点,swarm工具的大部分命令是在管理节点进行执行的,一个swarm集群可以有多个管理节点,但只有一个管理节点可以成为leader,一般第一个启用的节点会成为leader,工作节点是任务执行的节点,管理节点将服务下发至工作节点,工作节点调用task执行。Swarm提供可视化界面,可以监控集群的状态。

在这里插入图片描述

四:如何练习使用该技术?
1、创建虚拟机,使用centos镜像启动
2、配置虚拟机访问的网络信息
3、在虚拟机上使用命令安装docker所需的工具:
yum install y yum utils device-mappen-persistent-data lvm2
4、添加软件源信息:yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
5、安装docker:yum install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin
6、启动docker:systemctl start docker
7、验证安装是否成功:docker version
8、拉起具体的镜像:docker run xxx

  • 10
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值