【云原生 | 从零开始学Docker】一、Docker的安装,启动以及工作原理

本文涉及的产品
容器镜像服务 ACR,镜像仓库100个 不限时长
简介: 我们知道,传统的项目开发和运维是两套环境,而且要一一配置环境并且有的时候更新还会导致服务不可用,这就很麻烦了,那么有没有一种很方便不用这么麻烦的技术可以一键安装呢?有!那就是我们的Docker。

一丶Docker浅谈


21.png


1.1Docker为什么出现


我们知道,传统的项目开发和运维是两套环境,而且要一一配置环境并且有的时候更新还会导致服务不可用,这就很麻烦了,那么有没有一种很方便不用这么麻烦的技术可以一键安装呢?有!那就是我们的Docker。


1.2Docker能干吗


现在,用Docker可以打包应用以及环境到一个可移植的镜像中,然后发布到Linux或Windows操作系统的机器上,也可以实现虚拟化,十分的方便,用docker隔离,打包装箱,为了让不同东西放在同一个环境,通过隔离机制,把服务器利用到极致。(容器与容器之间互不影响,就和集装箱一样,每个都是单独的个体)


我们来对比一下优缺点


VM:资源占用多,冗余步骤多,启动慢(虚拟出硬件,完整的操作系统,在系统上运行)


容器化技术:不是模拟完整的系统,每个都是隔离起来的,一个崩了不影响其他的,直接运行在宿主机内容,没有自己的内核,不虚拟硬件,轻便。


22.png


并且,Docker能让系统运维更简单,测试环境高度一致,也不会出现操作系统不同不能用,有着高效资源利用,内核级别虚拟化,不需要管理程序,可以在一个机器上运行很多容器实例,压榨服务器性能到极致。


二、Docker的安装


2.1 Docker的组成


Docker分为三个部分组成:


1.镜像 image


2.容器 container


3.仓库 repository


镜像:镜像就像一个模板,可以通过这个模板创建容器服务,比如有个tomcat镜像,我们要运行起来然后它就会变成一个容器(提供服务) 通过镜像可以创建多个容器,服务或者项目运行在容器中。


容器:Docker利用容器技术做到独立运行一个或者一组应用,通过镜像创建,有启动 停止,删除这种基础操作,可以把容器看成简易的linux。


仓库:存放镜像的地方,有公有和私有,共有所有人都可以访问,Docker Hub,阿里云等都有容器服务。


2.2 安装前提


Docker 运行在 CentOS 7上,系统要是64位,内核版本为 3.10 以上。


Docker 运行在 CentOS-6.5 或更高的版本的 CentOS 上,系统要是64位,内核版本为 2.6.32-431 或者以上。


uname -r 查看自己的内核


23.png


2.3 安装步骤


官方文档安装点这里


第一步


确定自己的内核以及系统没问题之后,进行一下卸载旧版本,如果报告未安装这些包,则没有问题。


yum remove docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-engine


第二步


安装软件包并且配置镜像仓库


安装软件包的命令 yum install -y yum-utils


yum-util 提供yum-config-manager功能


镜像仓库配置 yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo


这是阿里仓库,对比官方的镜像仓库会更快(因为官方在国外)。


第三步


检查更新yum索引并且安装Docker CE


检查索引 yum makecache fast


Docker-CE即社区版(由社区维护和提供技术支持,为免费版本,适合个人开发人员和小团队使用),EE 即企业版(为收费版本,由售后团队和技术团队提供技术支持,专为企业开发和IT团队而设计。 相比Docker-EE,增加一些额外功能,更重要的是提供了更安全的保障)


yum install docker-ce docker-ce-cli containerd.io docker-compose-plugin


或者你想安装特定版本 可以用这个指令


yum list docker-ce --showduplicates | sort -r 查看docker版本
yum -y install docker-ce-18.03.1.ce 安装18.03.1.ce版本


如果你用的宝塔界面,那么可以直接去宝塔官网 软件商店下载Docker(比较方便)


如果你是腾讯云服务器,那么可以在服务器界面,点击更多


24.png


点击重装系统,选择docker镜像也可以直接安装,很方便


25.png


第四步


启动docker并且测试版本


如果你安装完成了,那么来尝试一下启动docker吧!


systemctl start docker


如果没有报错,那说明你启动成功了,然后我们设置一下开机自启动。


systemctl enable docker


随后我们检查一下docker的版本


docker version


26.png


没有问题!


docker都启动了,那能不玩一下?我们从最开始的helloworld开始!


docker run hello-world 这就是启动镜像的命令


如果你的界面出现了这个,那么说明你的docker没有问题!


27.png


此时我们查看一下docker的镜像


docker images


28.png


我们会发现刚才的hello-world就在里面!


第五步


最后就是我们的停止docker和卸载docker了


systemctl stop docker


这是停止的指令


yum remove docker-ce docker-ce-cli containerd.io
rm -rf /var/lib/docker


卸载首先卸载docker,然后删除docker的目录。


三、镜像加速


这个东西的话可以在阿里云设置。


登录阿里云,进入控制台,点击弹性计算,容器服务,容器镜像服务,在镜像工具里面有一个镜像加速器,选择对应版本的操作文档跟着来就好了。(腾讯云个人版本好像没有加速)


四、run的工作原理


29.png


五、Dokcer怎么工作的


docker是一个client-server结构的系统,docker的守护进程一直在后台运行在主机上(好比装了个mysql,一直在后台运行),通过Socket从客户端访问。Dockerserver(服务进程)接收到dockerclient的指令,就会执行这个命令。


客户端连接到守护进程之后它会启动一些容器,都在服务之内,通过这个守护进程造作容器资源(容器里面就好比有个小的linux虚拟机 可以跑 占用资源进程很少,互相隔离,如果想从外部访问要进行一个连通)


30.png


六、Docker为什么比VM快


Docker有更少的抽象层


vm要虚拟出硬件才行,而docker没有这一层,直接在主机安装服务,运行在服务里的 每个隔离的都是容器 由于docker不需要Hypervisor实现硬件资源虚拟化 运行在docker容器上的程序直接使用的都是实际物理机的硬件资源。因此在CPU、内存利用率上docker将会在效率上有明显优势。


Docker不需要Guest OS


docker利用的宿主机的内核,vm是需要GuestOS。 docker不用重新加载一个操作系统内核,避免引导,虚拟机需要加载GuestOS,时间是分钟级别。docker是利用宿主机的操作系统,就不需要在虚拟出来了,省略了这个复杂的过程,时间是秒级。Docker底层用的是物理机的资源,虚拟机需要模拟物理机的操作系统,所以Docker加载得更快,而虚拟机更慢。


31.png

相关实践学习
通过容器镜像仓库与容器服务快速部署spring-hello应用
本教程主要讲述如何将本地Java代码程序上传并在云端以容器化的构建、传输和运行。
深入解析Docker容器化技术
Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。Docker是世界领先的软件容器平台。开发人员利用Docker可以消除协作编码时“在我的机器上可正常工作”的问题。运维人员利用Docker可以在隔离容器中并行运行和管理应用,获得更好的计算密度。企业利用Docker可以构建敏捷的软件交付管道,以更快的速度、更高的安全性和可靠的信誉为Linux和Windows Server应用发布新功能。 在本套课程中,我们将全面的讲解Docker技术栈,从环境安装到容器、镜像操作以及生产环境如何部署开发的微服务应用。本课程由黑马程序员提供。     相关的阿里云产品:容器服务 ACK 容器服务 Kubernetes 版(简称 ACK)提供高性能可伸缩的容器应用管理能力,支持企业级容器化应用的全生命周期管理。整合阿里云虚拟化、存储、网络和安全能力,打造云端最佳容器化应用运行环境。 了解产品详情: https://www.aliyun.com/product/kubernetes
目录
相关文章
|
7天前
|
PHP 虚拟化 Docker
Docker——windows10安装Docker Desktop
Docker——windows10安装Docker Desktop
84 0
|
1天前
|
Ubuntu Shell Docker
在Docker环境下如何“安装”Ubuntu
【8月更文挑战第18天】在Docker环境中“安装”Ubuntu实际上是指利用Ubuntu镜像构建容器。
13 1
|
4天前
|
存储 Ubuntu Linux
如何安装和使用 Docker:入门指南
如何安装和使用 Docker:入门指南
28 1
|
4天前
|
存储 关系型数据库 Linux
在CentOS 7上安装和使用Docker的方法
在CentOS 7上安装和使用Docker的方法
29 1
|
4天前
|
Ubuntu Shell 应用服务中间件
在Ubuntu 14.04上安装和使用Docker Compose的方法
在Ubuntu 14.04上安装和使用Docker Compose的方法
13 1
|
8天前
|
应用服务中间件 网络安全 nginx
运维专题.Docker+Nginx服务器的SSL证书安装
运维专题.Docker+Nginx服务器的SSL证书安装
21 3
|
7天前
|
存储 Linux Docker
Linux——快速安装Docker
Linux——快速安装Docker
54 1
|
8天前
|
Linux 测试技术 Docker
Docker CE for CentOS 安装教程
Docker CE for CentOS 安装教程
46 1
|
4天前
|
Linux Docker 容器
在CentOS操作系统上使用yum安装/使用/卸载Docker容器引擎
在CentOS操作系统上安装、配置、使用和卸载Docker容器引擎的详细步骤,包括配置Docker镜像加速的方法。
27 0
|
4天前
|
Ubuntu Linux 测试技术
在Ubuntu 18.04上安装Docker Compose的方法
在Ubuntu 18.04上安装Docker Compose的方法
20 0

热门文章

最新文章