写点什么

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

作者:泡泡
  • 2022 年 9 月 08 日
    河北
  • 本文字数:2546 字

    阅读完需:约 8 分钟

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

1.1Docker 为什么出现

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

1.2Docker 能干吗

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


VM:资源占用多,冗余步骤多,启动慢(虚拟出硬件,完整的操作系统,在系统上运行)容器化技术:不是模拟完整的系统,每个都是隔离起来的,一个崩了不影响其他的,直接运行在宿主机内容,没有自己的内核,不虚拟硬件,轻便。



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

二、Docker 的安装

2.1 Docker 的组成

Docker 分为三个部分组成:1.镜像 image2.容器 container3.仓库 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 查看自己的内核
复制代码


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(比较方便)


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



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


第四步

启动 docker 并且测试版本


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


systemctl start docker
复制代码


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


systemctl enable docker
复制代码


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


docker version
复制代码



没有问题!


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


docker run hello-world 这就是启动镜像的命令
复制代码


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



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


docker images
复制代码



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

第五步

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


systemctl stop docker
复制代码


这是停止的指令


yum remove docker-ce docker-ce-cli containerd.io
rm -rf /var/lib/docker
复制代码


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

三、镜像加速

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

四、run 的工作原理

五、Dokcer 怎么工作的

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


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


六、Docker 为什么比 VM 快

Docker 有更少的抽象层

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

Docker 不需要 Guest OS

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


七、写在最后

创作不易,如果觉得内容对你有帮助,麻烦给个三连关注支持一下我!目前正在更新的系列:从 0 开始的蓝桥杯省一之路,云原生系列。感谢各位的观看,文章掺杂个人理解,如有错误请联系我指出~

发布于: 刚刚阅读数: 4
用户头像

泡泡

关注

做最好的知识分享 云计算/云原生 2022.08.25 加入

CSDN万粉博主

评论

发布
暂无评论
【从零开始学docker】一、Docker的安装,启动以及工作原理_云计算_泡泡_InfoQ写作社区