第一章 Dockers入门

文章探讨了容器技术在项目开发和部署中的重要性,特别是Docker如何通过虚拟化解决环境依赖问题。文章介绍了Docker的价值,如支持微服务、提高DevOps效率和应用移植,以及详细讲解了Docker的体系结构、安装方法和环境验证过程。
摘要由CSDN通过智能技术生成

1.1 为什么需要容器技术

    1、面临的问题 在项目迭代开发和部署过程中,运维人员不可避免会遇到这些情况:同样的代码需要被 部署到不同的运行环境中;由于运行环境不同导致项目部署失败,无法正常运行。 导致上述问题的原因可能不同。下面列举几种比较典型的原因。 运行环境发生了变化。例如,在开发阶段,代码是运行在程序员的本地环境 或测试环境中的;而在生产环境中,代码则被切换到集群环境或云平台上了。 代码的依赖发生了变化。例如,在开发阶段使用的是 JDK 1.7,而在生产环 境中使用的是JDK 1.8。 操作系统发生了变化。例如:在开发阶段使用的是Redhat Linux,而在生产 环境中使用的是CentOS。 随着系统架构不断变复杂,微服务架构得到了广泛的应用,这就要求每个功 能模块需要单独进行部署。

    这些问题都会对参与项目的人员造成以下影响。 对于开发人员而言,除需要关注业务代码本身的实现外,还需要额外花费精力去处理这种底层执行环境的问题。 对于运维人员而言,需要考虑如何将开发人员新开发的业务代码不断集成与 发布

    有没有一种办法能使得开发人员和运维人员只要关注他们需要关注的问题,而不需要关 注其他的问题呢?答案是有的——使用虚拟化容器技术。 有了虚拟化容器技术,开发人员在业务开发过程中只需要关注业务代码的实现;而运维人 员也可以很方便地实现项目的持续集成与持续发布( CI/CD)。Docker是虚拟化容器技术中的 典型代表,也是云计算中的重点。

  1. Docker虚拟化容器的价值 Docker 虚拟化容器有以下两方面的价值。 从系统的架构层面上看:Docker 可以方便地支持并实现微服务架构,从而更 方便灵活地实现架构的变化和系统的扩展。同时,Docker虚拟化容器有助于DevOps 的落地,可以大大提升开发效率,加速迭代。 从底层基础层面上看:利用Docker 虚拟化容器技术可以方便地实现系统的移 植,,帮助实现企业应用上云,让应用在自有数据中心和云端之间实现动态迁移。 随着云计算技术的不断发展,在产生Docker 虚拟化容器技术后,一批相关的虚拟化容 器管理技术也随之诞生,例如Kubernetes ( K8s)等。这样的工具极大地推动了技术的分工, 也极大地促进了技术和业务的创新。

1.2 Docker介绍

    Docker是一个开源的虚拟化容器引擎,让开发者可以打包他们的应用及依赖到一个可 移植的容器中,然后发布到Linux环境中以实现虚拟化的管理。这些 Linux环境包括 CentOS、Redhat、Ubuntu等。在Windows上也可以部署Docker,但不推荐。

    Docker 中的虚拟化容器完全使用“沙箱”机制,相互之间不会有任何接口。可以把这些 容器理解为是逻辑隔离的。 一个完整的 Docker 由以下几部分组成: Docker客户端、Docker守护进程(Daemon)、Docker 镜像(lmage)、 Docker容器(Container)、 镜像仓库(Repository)。          Docker 实现了应用代码与底层运行环境之间的耦合。它可以将一个复杂系统中的各个 模块进行容器化,同时提供了负载均衡和失败迁移功能。应用的容器化,满足了敏捷开发、动 态迁移、标准化的要求,从而大大提高了效率。

1.3 Docker的体系架构与基本概念

    我们在使用Docker 创建容器时需要有镜像。镜像是一个只读的模板。而存放镜像的地 方叫作“镜像仓库”。镜像仓库,可以是公有镜像仓库(例如官方提供的公有镜像仓库 Docker Hub),也可以是私有镜像仓库(例如 Harbor)。

    下面内容描述了Docker体系架构中的组成部分及其功能特性

     Docker客户端 通常指Docker 提供的命令行工具,是Docker 最基本的用户接口。用户通过 Docker 客户端提交Docker指令,Docker守护进程接收并执行该指令。Docker 也有图形化的客户端工具

    Docker守护进程 在Docker宿主机上运行Docker,实际上运行的是 Docker守护进程。用户并不 直接和Docker守护进程交互,而是通过 Docker客户端的命令来和它进行交互

   Docker镜像一个Dock;er镜像是一个只读的模板。例如,一个Docker镜像可以包含一个 CentOS的操作系统、一个MySQL的数据库和一个Tomcat的应用服务器。 Docker镜像被用来创建Docker容器.Docker提供了一个简单的方式来构建一个 新的镜像或更新一个已经存在的镜像。用户也可以从镜像仓库下载其他人已经创 建好的Docker 镜像

   Docker容器:通过Docker镜像可以创建Docker容器。Docker的容器可以保存任何东西,而这 些东西是运行一个应用所必需的。可以把.Docker 容器看成是一个虚拟机。 Docker容器可以被运行、开启、停止、移动和删除。每一个容器都是一个分离 的、安全的应用平台。Docker容器是    Docker的运行组件

    镜像仓库 Docker:的镜像仓库用于保存Docker镜像,它可以是公共的存储地方,也可以是 私有的存储地方。 1、公共的镜像仓库由Docker Hub提供,它提供了一个用户可以使用的已有镜 像的集合。这些集合中的镜像可以是你自己创建的,也可以是别人创建的。 2、私有的镜像仓库需要自己在私有环境中搭建,例如在企业内网中自行搭建。 Harbor是一个典型的私有的镜像仓库

1.4.2 使用YUM方式安装Docker

   YUM的全称是Yellow dogUpdater Modified。利用YUM方式可以很方便地添加、删 除和更新Linux系统的程序包,并且能够自动解决包的依赖性问题。使用 YUM也能够方便地 管理大量的系统更新问题。一般使用YUM方式需要连接外部的网络。

(1)执行以下命令使用YUM方式安装Docker。

[root@node7 ~]# yum -y install docker

(2)安装完成后的界面

(3)执行以下命令启动Docker的服务

[root@node7 ~]# systemctl start docker.service
[root@node7 ~]# systemctl enable docker.service

(4)执行以下命令确定Docker的版本

root@node0 ~]# docker version

1.4.2 使用二进制包方式安装Docker

   使用YUM方式安装Docker非常简单,但需要连接外部的网络。而在实际的企业生产环 境中,通常不能直接访问外部的网络。这时可以使用Docker 官方提供的二进制包进行Docker 的离线下面展示的是Docker官方提供的二进制包下载网页。

(1)安装wget下载工具

[root@node7 ~]# yum -y install wget

(2)下载Docker安装包

[root@node7 ~]# wget https://download.docker.com/linux/static/stable/x86_64/docker-20.10.9.tgz

(3)使用tar命令解压缩Docker二进制安装包

[root@node7 ~]# tar -zxvf docker-20.10.9.tgz

(4)将Docker的可执行命令复制到“/usr/bin”目录下

[root@node7 ~]# cp docker/* /usr/bin/

(5)执行以下命令启动Docker服务。启动后查看输出日志信息如图所示

[root@node7 ~]# /usr/bin/dockerd

(6)新开启一个命令窗口,执行以下语句查看 Docker 的版本信息,可以看到Docker的版本为20.10.9,如图所示

[root@centos7 ~]# /usr/bin/docker version

(7)在“/etc/systemd/system/docker.service”文件中输入以下内容

[root@node0 ~]# vim /etc/systemd/system/docker.service

[Unit]
Description=Docker Application Container Engine
Documentation=https://docs.docker.com
After=network‐online.target firewalld.service
Wants=network‐online.target
[Service]
Type=notify
ExecStart=/usr/bin/dockerd
ExecReload=/bin/kill ‐s HUP $MAINPID
LimitNOFILE=infinity
LimitNPROC=infinity
TimeoutStartSec=0
Delegate=yes
KillMode=process
Restart=on‐failure
StartLimitBurst=3
StartLimitInterval=60s
[Install]
WantedBy=multi‐user.target

(8)在创建“/etc/systemd/system/docker.service”文件后,需要给该文件添加可执行权限

[root@node7 ~]# chmod +x /etc/systemd/system/docker.service

(9)启动Docker,并设置Docker为开机自启模式

[root@node7 ~]# systemctl start docker.service
[root@node7 ~]# systemctl enable docker.service

   至此,通过使用二进制包完成了Docker安装。不管使用YUM方式还是二进制包方式,在安装完成后,Docker的使用方式是完全一样的。但在使用之前,最好验证一下Docker的环境。

1.4.3 验证Docker环境

[root@node7 ~]# docker info

    通过使用系统服务命令可以查看Docker 的运行状态。执行以下命令,可以查看Docker 服务的状态,如图所示

[root@node7 ~]# systemctl status docker.service

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值