快速入门Docker(1)——介绍及安装

         最近在项目需要依赖于Docker,但是博主之前没有接触出过这个,所以小白方式来给大家分享,如果有哪些不足的地方可以在留言区提出来。看完本篇文章可以掌握以下内容:

  • 了解Docker为什么会出现
  • 了解Docker历史
  • 了解Docer能干嘛
  • 完成Docer安装
    在这里插入图片描述

一、Docker为什么会出现

         一款产品从开发到上线,从操作系统,到运行环境,再到应用配置。作为开发+运维之间的协助我们需要关心的问题很多,这也是很多互联网公司不得不面对的问题,特别是各种版本的迭代之后不同版本环境的兼容,对运维人员都是考验。
         环境配置如此麻烦,换一台机器,就要重新来一次,费力费时。很多人想到,能不能从根本上解决问题,软件可以带环境安装?也就是说,安装的时候,把原始环境一模一样的复制过来。开发人员利用Docker可以消除协作编码时“在我的机器上可正常工作”的问题。
         开发人员利用Docker可以消除协作编码时“在我的机器上可正常工作”的问题。
         之前在服务器配置一个应用的运行环境,要安装各种软件,就拿某电商项目为例,Java/Tomcat/Mysql/JDBC驱动包等,安装和配置这些东西有多麻烦就不必多说了,
它还不能跨平台。假设我们是在Windows上安装的这些环境,到了Linux又得重新安装。况且就算不跨操作系统,换另一台同样操作系统的服务器,要移植应用也是非常的麻烦的。
         Docker镜像的设计,使得Docker得以打破过去【程序即应用】的观念。 透过镜像(images)将作业系统核心除外,运作应用程式所需要的系统环境,由下而上打包,达到应用程式跨平台间的无缝接轨运作

二、Docker历史

         Docker 公司位于旧金山,由法裔美籍开发者和企业家 Solumon Hykes 创立,其标志如下图所示。
在这里插入图片描述
有意思的是,Docker 公司起初是一家名为 dotCloud的平台即服务(Platform-as-a-Service, PaaS)提供商。
         底层技术上,dotCloud 平台利用了 Linux 容器技术。为了方便创建和管理这些容器,dotCloud 开发了一套内部工具,之被命名为“Docker”。Docker就是这样诞生的!
         2013年,dotCloud 的 PaaS 业务并不景气,公司需要寻求新的突破。于是他们聘请了 Ben Golub 作为新的 CEO,将公司重命名为“Docker”,放弃dotCloud PaaS 平台怀揣着“将 Docker 和容器技术推向全世界”的使命,开启了一段新的征程
         如今 Docker 公司被普遍认为是一家创新型科技公司,据说其市场价值约为 10 亿美元。Docker 公司已经通过多轮融资,吸纳了来自硅谷的几家风投公司的累计超过 2.4 亿美元的投资。
几乎所有的融资都发生在公司更名为“Docker”之后。

虚拟机与镜像的区别
虚拟机:

  • 像一台电脑
  • 隔离、需要开启多个虚拟机
  • 非常大
  • 开机需要几分钟

镜像:

  • 十分小巧
  • 启动运行镜像就可以
  • 小巧
  • 启动只需要几秒钟

三、Docker 能干嘛

之前的虚拟技术
在这里插入图片描述
虚拟机技术缺点:

  1. 资源占用十分多
  2. 冗余步骤多
  3. 启动很慢!

容器化技术
在这里插入图片描述
比较Docker和虚拟机技术不同:

  1. 传统虚拟机,虚拟出一条硬件,运行一个完整的操作系统,然后在这个系统上安装运行软件
  2. 容器内的应用直接运行在宿主机的内容,容器是没有自己的内核的,也没有虚拟我们的硬件,所以就轻便了。
  3. 每个容器键是互相隔离,每个容器内都有一个属于自己的文件系统,互补影响。

应用更快的交付部署
传统:一个帮助文档,安装程序。
Docker:打包镜像发布测试一键运行。
更便捷的升级和扩容
使用了Docker字后,我们部署应用就和搭积木一样
项目打包为一个镜像,扩展服务器A!服务器B
更简单的系统运维
在容器化后,我们的开发,测试化劲都是高度一致
更高效的计算利用
Docker 是内核级别的虚拟化,可以在一个物理机上可以运行很多的容器!服务器的性能可以被压榨到极致。

四、Docker安装

4.1 Docker基本组成部分

在这里插入图片描述
镜像(image):
docker镜像就好比一个模板,可以通过这模板来创建服务,tomcat镜像 ==> run ==>tomcat01容器(提供服务)通过这个镜像可以创建多个容器(最终服务运行或者项目运行就是在容器中的)。
容器(container):
Docker利用容器技术,独立运行一个或者一个组应用,通过镜像来创建的
启动,停止,删除等基本命令。
目前就可以吧这个容器理解为就是一个简易的Linux系统。
仓库(repository):
仓库就是存放镜像的地方!
仓库分为公有仓库和私有仓库!

4.2 环境准备

最新的Docker 需要具备Linux Contos7以上的版本 如果小伙伴没有安装的请看https://blog.csdn.net/hongchenshijie/article/details/102946732 进行安装下载,在进行后续的操作。
官方链接安装文档
在这里插入图片描述

4.3 开始安装

  1. 卸载旧的docker所依赖东西
yum remove docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-engine
  1. 安装需要安装包
 yum install -y yum-utils
  1. 安装镜像仓库
yum-config-manager \
    --add-repo \
    https://download.docker.com/linux/centos/docker-ce.repo  #默认是国外的不推荐使用
#推荐使用阿里云的镜像仓库地址
yum-config-manager \
    --add-repo \
 http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
  1. 更新yum的软件包最新的索引
yum makecache  fast
  1. 安装docker相关的 docker-ce社区 (常用) ee 企业
 yum install docker-ce docker-ce-cli containerd.io
  1. 启动Docker
systemctl start docker
# 查看是否启动成功 出现以下结构说明启动成功
[root@192 ~]# docker version
Client: Docker Engine - Community
 Version:           19.03.13
 API version:       1.40
 Go version:        go1.13.15
 Git commit:        4484c46d9d
 Built:             Wed Sep 16 17:03:45 2020
 OS/Arch:           linux/amd64
 Experimental:      false

Server: Docker Engine - Community
 Engine:
  Version:          19.03.13
  API version:      1.40 (minimum version 1.12)
  Go version:       go1.13.15
  Git commit:       4484c46d9d
  Built:            Wed Sep 16 17:02:21 2020
  OS/Arch:          linux/amd64
  Experimental:     false
 containerd:
  Version:          1.3.7
  GitCommit:        8fba4e9a7d01810a393d5d25a3621dc101981175
 runc:
  Version:          1.0.0-rc10
  GitCommit:        dc9208a3303feef5b3839f4323d9beb36df0a9dd
 docker-init:
  Version:          0.18.0
  GitCommit:        fec3683
  1. 测试docker hello-world
docker run hello-world

在这里插入图片描述
8. 查看刚刚下载hello-word镜像

[root@192 ~]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
hello-world         latest              bf756fb1ae65        10 months ago       13.3kB

9.删除Docker

#删除依赖
yum remove docker-ce docker-ce-cli containerd.io
#删除资源 /var/lib/docker docker默认的工作目录
rm -rf /var/lib/docker

4.3 使用阿里云的镜像加速器

登录到阿里云 选择镜像服务
在这里插入图片描述
在这里插入图片描述
执行以下内容

sudo mkdir -p /etc/docker

sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://t4bt9dhe.mirror.aliyuncs.com"]
}
EOF

sudo systemctl daemon-reload
sudo systemctl restart docker

五、Docker运行流程

在这里插入图片描述

六、底层原理

6.1 Docker是怎么工作的?

  • Docker 是一个Client -Server结构的系统,Docker的守护进程运行在主机上通过Socket
    从客户端访问!
  • DockerServer接收到 Docker-Clinet,就会执行这个命令!
    在这里插入图片描述

6.2 Docker为什么比Vm快?

  1. Docker 有着比虚拟机跟小的抽象层
  2. Docker利用的是宿主机的内核,Vm需要时Guest OS。
    在这里插入图片描述

所以说,新建一个容器的时候,Docker不需要像虚拟机一样重行加载操作系统,避免引导。虚拟机是加载Cuest OS,分钟级别的,而Docker是利用宿主机的操作系统,省略了这个复杂的过程,秒级。

在这里插入图片描述

7.总结

         到这里本篇文章基本上就结束了,总结一下本篇文章我们都学到了啥,了解了Docker,以及后面Docker能干啥,成功安装Doker,深度了解下Docker是怎样运行的,下期我们学习Docker的常用命令。我们下期见~~

  • 19
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 16
    评论
评论 16
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

大数据老哥

欢迎支持

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值