写点什么

Docker 教程 (1)---Docker 简介与安装

用户头像
AlbertYang
关注
发布于: 2021 年 03 月 25 日
Docker 教程(1)---Docker简介与安装

一. Docker 介绍

1.1 我们为什么需要 Docker?

我们开发一个项目的时候通常会有两个环境,本地测试环境和线上环境。项目开发上线的时候,我们通常会把项目打成一个 jar 包或 war 包上传到线上的服务器,此时为了让项目能够运行,我们还要为线上的服务器配置项目的运行环境 JDK,Tomcat,ES,Mysql,Redis,Hadoop 等等,配置非常麻烦,特别对于搭建集群的时候更麻烦。有时候还会因为本地环境和线上环境的不一致导致很多问题,我们都应该都听说过这句话,我本地运行没问题啊。



Docker 给以上问题提出了解决方案,它可以让我们发布项目的时候,能带上项目的运行环境打包。(jar+JDK+Mysql+Redis+ES)。


1.2 Docker 的历史

2010 年一帮年轻人创办了一家专门做 PAAS 平台的公司。

2013 年,他们将公司内的核心技术(容器化技术)对外开源,命名为 Docker。

2014 年 4 月 9 日,Docker1.0 发布。



1.3 Docker 的思想

Docker 是一个基于 Go 语言的开源的应用容器引擎。Docker 容器与虚拟机类似,但二者在原理上不同。容器是将操作系统层虚拟化,虚拟机则是虚拟化硬件,因此容器更具有便携性、高效地利用服务器。 容器更多的用于表示 软件的一个标准化单元。由于容器的标准化,因此它可以无视基础设施(Infrastructure)的差异,部署到任何一个地方。另外,Docker 也为容器提供更强的业界的隔离兼容。



比较 Docker 和虚拟机技术的不同:

1.虚拟机是虚拟出操作系统所需要的的一系列硬件,然后运行一个完整的操作系统,在这个系统上安装软件和应用。

2.容器直接运行在宿主的操作系统上,容器没有自己的内核,也没有虚拟一系列硬件。

3.每个容器之间是相互隔离的,每个容器内都有自己独有的文件系统和运行环境,和其他容器互不影响。

1.4 Docker 的应用场景

  • Web 应用的自动化打包和发布。

  • 自动化测试和持续集成、发布。

  • 在服务型环境中部署和调整数据库或其他的后台应用。

  • 从头编译或者扩展现有的 OpenShift 或 Cloud Foundry 平台来搭建自己的 PaaS 环境。

1.5 Docker 的优点



1.5.1 快速,一致地交付您的应用程序

Docker 允许开发人员使用您提供的应用程序或服务的本地容器在标准化环境中工作,从而简化了开发的生命周期。

容器非常适合持续集成和持续交付(CI / CD)工作流程,请考虑以下示例方案:

  • 您的开发人员在本地编写代码,并使用 Docker 容器与同事共享他们的工作。

  • 他们使用 Docker 将其应用程序推送到测试环境中,并执行自动或手动测试。

  • 当开发人员发现错误时,他们可以在开发环境中对其进行修复,然后将其重新部署到测试环境中,以进行测试和验证。

  • 测试完成后,将修补程序推送给生产环境,就像将更新的镜像推送到生产环境一样简单。

1.5.2 响应式部署和扩展

Docker 是基于容器的平台,允许高度可移植的工作负载。Docker 容器可以在开发人员的本机上,数据中心的物理或虚拟机上,云服务上或混合环境中运行。

Docker 的可移植性和轻量级的特性,还可以使您轻松地完成动态管理的工作负担,并根据业务需求指示,实时扩展或拆除应用程序和服务。

1.5.3 在同一硬件上运行更多工作负载

Docker 轻巧快速。它为基于虚拟机管理程序的虚拟机提供了可行、经济、高效的替代方案,因此您可以利用更多的计算能力来实现业务目标。Docker 非常适合于高密度环境以及中小型部署,而您可以用更少的资源做更多的事情。服务器的性能可以被压榨到极致。

1.6 Docker 架构

Docker 包括三个基本概念:

  • 镜像(Image):Docker 镜像(Image),就相当于是一个 root 文件系统。比如官方镜像 ubuntu:16.04 就包含了完整的一套 Ubuntu16.04 最小系统的 root 文件系统。

  • 容器(Container):镜像(Image)和容器(Container)的关系,就像是面向对象程序设计中的类和实例一样,镜像是静态的定义,容器是镜像运行时的实体。容器可以被创建、启动、停止、删除、暂停等。

  • 仓库(Repository):仓库可看成一个代码控制中心,用来保存镜像。

Docker 使用客户端-服务器 (C/S) 架构模式,使用远程 API 来管理和创建 Docker 容器。

Docker 容器通过 Docker 镜像来创建。

容器与镜像的关系类似于面向对象编程中的对象与类。

Docker 面向对象容器对象镜像类


二. Docker 的安装



2.1 环境准备

操作系统:centos7

PS C:\Users\Albert> ssh root@42.192.5.212 -p 22root@42.192.5.212's password:Last failed login: Sun Nov 22 21:43:31 CST 2020 from 209.126.2.233 on ssh:nottyThere were 939 failed login attempts since the last successful login.Last login: Sun Nov 22 11:47:56 2020 from 106.34.108.106[root@VM-0-5-centos ~]# uname -r3.10.0-1127.19.1.el7.x86_64[root@VM-0-5-centos ~]# cd /[root@VM-0-5-centos /]# cat /etc/os-releaseNAME="CentOS Linux"VERSION="7 (Core)"ID="centos"ID_LIKE="rhel fedora"VERSION_ID="7"PRETTY_NAME="CentOS Linux 7 (Core)"ANSI_COLOR="0;31"CPE_NAME="cpe:/o:centos:centos:7"HOME_URL="https://www.centos.org/"BUG_REPORT_URL="https://bugs.centos.org/"
CENTOS_MANTISBT_PROJECT="CentOS-7"CENTOS_MANTISBT_PROJECT_VERSION="7"REDHAT_SUPPORT_PRODUCT="centos"REDHAT_SUPPORT_PRODUCT_VERSION="7"
[root@VM-0-5-centos /]#
复制代码



2.2 安装 Docker



2.2.1. 卸载旧版本

sudo yum remove docker \                  docker-client \                  docker-client-latest \                  docker-common \                  docker-latest \                  docker-latest-logrotate \                  docker-logrotate \                  docker-engine
复制代码


2.2.2.安装依赖软件包

sudo yum install -y yum-utils
复制代码


2.2.3.设置镜像仓库

默认国外可能比较慢:

sudo yum-config-manager \    --add-repo \    https://download.docker.com/linux/centos/docker-ce.repo 
复制代码


可以使用阿里云镜像安装:

sudo yum-config-manager \    --add-repo \    http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
复制代码


2.2.4. 安装 Docker CE

Docker 有两个分支版本:Docker CE 和 Docker EE,即社区版和企业版,因为企业版需要官方授权,所以我们一般用社区版。

sudo yum install docker-ce docker-ce-cli containerd.io
复制代码


2.2.5. 启动 Docker

sudo systemctl start docker
复制代码


2.2.6. 验证是否正确安装了安装 Docker CE

通过运行 hello-world 映像来验证是否正确安装了 Docker Engine 。

sudo docker run hello-world
复制代码


此命令下载测试图像并在容器中运行它。容器运行时,打印出 Hello from Docker!说明安装成功。



 执行 docker run hello-world 之后 Docker 运行流程:



 2.3 卸载 Docker 

1. 卸载 Docker Engine,CLI 和 Containerd 软件包:

sudo yum remove docker-ce docker-ce-cli containerd.io
复制代码


2.删除 Docker 工作目录 (默认工作目录 /var/lib/docker docker ):

sudo rm -rf /var/lib/docker
复制代码


3.手动删除所有已编辑的配置文件。

三. 阿里云镜像加速



国内从 DockerHub 拉取镜像非常慢,此时可以配置镜像加速器。Docker 官方和国内很多云服务商都提供了国内加速器服务,例如:

  • 网易:https://hub-mirror.c.163.com/

  • 阿里云:https://<你的 ID>.mirror.aliyuncs.com

  • 七牛云加速器:https://reg-mirror.qiniu.com

3.1 登录阿里云

此处以阿里云为例,阿里云镜像获取地址:https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors,登陆后,左侧菜单选中镜像加速器就可以看到你的专属地址了:





3.2. 配置镜像加速器

sudo mkdir -p /etc/dockersudo tee /etc/docker/daemon.json <<-'EOF'{  "registry-mirrors": ["https://XXXXX.mirror.aliyuncs.com"]}EOFsudo systemctl daemon-reloadsudo systemctl restart docker
复制代码


3.3 检查加速器是否生效

在命令行执行 docker info,如果从结果中看到了如下内容,说明配置成功。

docker info
复制代码




参考链接:https://docs.docker.com/engine/install/centos/

今天的学习就到这里了,由于本人能力和知识有限,如果有写的不对的地方,还请各位大佬批评指正。如果想继续学习提高,欢迎关注我,每天学习进步一点点,就是领先的开始,加油。如果觉得本文对你有帮助的话,欢迎转发,评论,点赞!!!


发布于: 2021 年 03 月 25 日阅读数: 26
用户头像

AlbertYang

关注

每天学习进步一点点,就是领先的开始。 2018.10.30 加入

一代歌神,阿尔伯特·杨,一名Java程序员,正在学习前端。真正能让你走远的,从来都是积极自律与勤奋。欢迎关注公众号: AlbertYang,这里有天籁之音,更有海量学习资料免费领取。

评论

发布
暂无评论
Docker 教程(1)---Docker简介与安装