Docker入门到实践 (一) docker简介与安装


一、docker 介绍

  Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的 Linux或Windows 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。

  开发人员利用Docker可以消除协作编码时“在我的机器上可正常运作,而在你的机器上不能正常运作”的问题。运维人员利用Docker可以在隔离容器中并行运行和管理应用,获得更好的计算密度。企业利用Docker可以构建敏捷的软件交付管道,以更快的速度、更高的安全性和可靠的信誉为Linux和Windows Server应用发布新功能。
docker



二、docker 优点

1、更快速的应用交付和部署

  传统的应用开发完成后,需要提供一堆安装程序和配置说明文档,安装部署后需根据配置文档进行繁杂的配置才能正常运行。Docker化之后只需要交付少量容器镜像文件,在正式生产环境加载镜像并运行即可,应用安装配置在镜像里已经内置好,大大节省部署配置和测试验证时间。

2、更便捷的升级和扩缩容

  随着微服务架构和Docker的发展,大量的应用会通过微服务方式架构,应用的开发构建将变成搭乐高积木一样,每个Docker容器将变成一块“积木”,应用的升级将变得非常容易。当现有的容器不足以支撑业务处理时,可通过镜像运行新的容器进行快速扩容,使应用系统的扩容从原先的天级变成分钟级甚至秒级。

3、更简单的系统运维

  应用容器化运行后,生产环境运行的应用可与开发、测试环境的应用高度一致,容器会将应用程序相关的环境和状态完全封装起来,不会因为底层基础架构和操作系统的不一致性给应用带来影响,产生新的BUG。当出现程序异常时,也可以通过测试环境的相同容器进行快速定位和修复。

4、更高效的利用系统资源

  Docker是内核级虚拟化,其不像传统的虚拟化技术一样需要额外的Hypervisor支持,所以在一台物理机上可以运行很多个容器实例,可大大提升物理服务器的CPU和内存的利用率。



三、Docker 架构

  Docker使用C/S架构,Client通过接口与Server进程通信实现容器的构建,运行和发布,如图:
docker架构

1、Docker Client (docker 客户端)

  Docker命令行工具,用户通过Docker Clients与Docker daemon进行通信,利用命令行发送创建镜像、运行容器之类的请求。

2、Docker Host (docker 宿主机)

  安装了Docker程序,并运行了Docker daemon的主机。其中Docker Host包含如下三部分:

  2.1、Docker daemon (Docker 守护进程)

  运行在宿主机上,Docker守护进程,用户通过Docker client(Docker命令)与Docker daemon交互。

扫描二维码关注公众号,回复: 8853177 查看本文章

  2.2、Images (镜像)

  将软件环境打包好的模板,用来创建容器的,一个镜像可以创建多个容器。

  2.3、Containers (容器)

  Docker的运行组件,启动一个镜像就是一个容器,容器与容器之间相互隔离,并且互不影响。

3、Registry (仓库服务注册器)

  经常会和仓库(Repository)混为一谈,实际上Registry上可以有多个仓库,每个仓库可以看成是一个用户, 一个用户的仓库放了多个镜像。仓库分为了公开仓库(Public Repository)和私有仓库(Private Repository),最大的公开仓库是官方的Docker Hub,国内也有如阿里云、时速云等,可以给国内用户提供稳定快速的服务。用户也可以在本地网络内创建一个私有仓库。当用户创建了自己的镜像之后就可以使用push命令将它上传到公有或者私有仓库,这样下次在另外一台机器上使用这个镜像时候,只需要从仓库上pull下来就可以了。



四、Docker VS VMware

  VM是一个运行在宿主机之上的完整的操作系统,VM运行自身操作系统会占用较多的CPU、内存、硬盘资源。Docker不同于VM,只包含应用程序以及依赖库,基于libcontainer运行在宿主机上,并处于一个隔离的环境中,这使得Docker更加轻量高效,启动容器只需几秒钟之内完成。由于Docker轻量、资源占用少,使得Docker可以轻易的应用到构建标准化的应用中。
传统虚拟化


docker


五、CentOS7操作系统安装Docker CE (社区版)


官方安装文档:https://docs.docker.com/install/linux/docker-ce/centos/

1、查看操作系统版本是否是CentOS7及以上

cat /etc/redhat-release



2、查看CentOS7的内核版本,Docker要求CentOS7系统必须为64位,且系统内核版本为3.10及以上

uname -r


可以看到CentOS7的操作系统为x86_64(64位),系统内核版本为3.10.0

提示:以下步骤请以root用户运行指令,如果不是以root用户运行,请在指令的最前面加上sudo,表示以系统管理者(root) 的身份执行指令

3、卸载旧版本 (如果之前没有安装过旧版本的docker 可以跳过)

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

4、安装docker所需的软件包

yum install -y yum-utils device-mapper-persistent-data lvm2




5、设置yum源为阿里云 (由于国外网站访问速度慢)

yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo



6、更新yum软件包索引

yum makecache fast



7、安装docker CE(社区版),Docker提供了两个版本:社区版(CE,免费) 和 企业版(EE,收费)

yum -y install docker-ce




8、启动docker,并加入到开机启动

//启动docker
systemctl start docker

//设置docker开机启动
systemctl enable docker



9、查看docker是否安装成功

docker version


出现Client 和 Service两部分信息,则表示docker启动和安装都成功



10、设置阿里云镜像加速器 (外国网站下载镜像速度慢)

10.1、进入到阿里云官网,登录并点击右上角的控制台,进入到控制台页面


10.2、进入到控制台页面,在搜索框中输入 容器镜像服务并选择,进入到镜像仓库管理控制台
在这里插入图片描述

10.3、进入到控制台页面后,在搜索框中输入 容器镜像服务并选择,进入到镜像仓库管理控制台,在进入时,需要设置镜像仓库管理控制台的用户名和密码,查看文档请点击:阿里云镜像基本操作


10.4、进入到镜像仓库管理控制台后,点击左边镜像中心下拉选项中的镜像加速器,最后点击复制链接,复制加速器地址,查看文档请点击:阿里云官方镜像加速


10.5、编辑/etc/docker/daemon.json配置文件 (如果有daemon.json配置文件则编辑,没有则会自动新建)

vi /etc/docker/daemon.json



10.6、在daemon.json配置文件中,添加如下内容并保存:

{
  "registry-mirrors": ["你的加速器地址"]
}



11、重新加载daemon.json配置文件 并 重启docker服务

//重新加载daemon.json配置文件
systemctl daemon-reload

//重启服务器
systemctl restart docker



12、查看阿里云镜像加速器是否配置成功

docker info

找到Registry Mirrors,在其下方显示的就是我们配置的镜像加速器地址

到这,docker CE(社区版)就安装成功了



Docker入门到实践系列文章列表:

Docker入门到实践 (一) docker简介与安装
Docker入门到实践 (二) docker常用命令讲解
Docker入门到实践 (三) Dockerfile解析与镜像制作
Docker入门到实践 (四) docker容器数据卷与数据卷容器
Docker入门到实践 (五) docker数据的备份、恢复与迁移
Docker入门到实践 (六) docker常用软件安装
Docker入门到实践 (七) 本地镜像推送到阿里云 和 下载镜像到本地
Docker入门到实践 (八) Docker私有仓库的搭建与配置
Docker入门到实践 (九) IDEA集成Docker构建容器镜像,部署项目




                   如果有遇到不懂或者有问题时,可以扫描下方二维码,欢迎进群交流与分享,希望能够跟大家交流学习!

发布了76 篇原创文章 · 获赞 253 · 访问量 43万+

猜你喜欢

转载自blog.csdn.net/qq_39135287/article/details/101012149