附带安装参考教程:
什么是docker
Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从Apache2.0协议开源。
Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。
容器是完全使用沙箱机制,相互之间不会有任何接口(类似 iPhone 的 app),更重要的是容器性能开销极低。
为什么用docker
1、 简化程序:
Docker 让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,便可以实现虚拟化。Docker改变了虚拟化的方式,使开发者可以直接将自己的成果放入Docker中进行管理。方便快捷已经是 Docker的最大优势,过去需要用数天乃至数周的 任务,在Docker容器的处理下,只需要数秒就能完成。
2、 避免选择恐惧症: 如果你有选择恐惧症,还是资深患者。Docker 帮你 打包你的纠结!比如 Docker 镜像;Docker 镜像中包含了运行环境和配置,所以 Docker 可以简化部署多种应用实例工作。比如 Web 应用、后台应用、数据库应用、大数据应用比如 Hadoop 集群、消息队列等等都可以打包成一个镜像部署。
3、 节省开支 一方面,云计算时代到来,使开发者不必为了追求效果而配置高额的硬件,Docker 改变了高性能必然高价格的思维定势。Docker 与云的结合,让云空间得到更充分的利用。不仅解决了硬件管理的问题,也改变了虚拟化的方式。
4、 持续交付和部署
对开发和运维(DevOps)人员来说,最希望的就是一次创建或配置,可以在任意地方正常运行。使用 Docker 可以通过定制应用镜像来实现持续集成、持续交付、部署。开发人员可以通过 Dockerfile 来进行镜像构建,并结合 持续集成(Continuous Integration) 系统进行集成测试,而运维人员则可以直接在生产环境中快速部署该镜像,甚至结合 持续部署(Continuous Delivery/Deployment) 系统进行自动部署。而且使用 Dockerfile 使镜像构建透明化,不仅仅开发团队可以理解应用运行环境,也方便运维团队理解应用运行所需条件,帮助更好的生产环境中部署该镜像
5、 更轻松的迁移
由于 Docker 确保了执行环境的一致性,使得应用的迁移更加容易。Docker 可以在很多平台上运行,无论是物理机、虚拟机、公有云、私有云,甚至是笔记本,其运行结果是一致的。因此用户可以很轻易的将在一个平台上运行的应用,迁移到另一个平台上,而不用担心运行环境的变化导致应用无法正常运行的情况
Docker的应用场景
Web 应用的自动化打包和发布。
自动化测试和持续集成、发布。
在服务型环境中部署和调整数据库或其他的后台应用。
从头编译或者扩展现有的 OpenShift 或 Cloud Foundry 平台来搭建自己的 PaaS 环境。
Docker架构
Docker 使用客户端-服务器 (C/S) 架构模式,使用远程API来管理和创建Docker容器。
Docker 容器通过 Docker 镜像来创建。
容器与镜像的关系类似于面向对象编程中的对象与类。
Docker 基本概念
Docker 包括三个基本概念
- 镜像(Image)
- 容器(Container)
- 仓库(Repository)
理解了这三个概念,就理解了 Docker 的整个生命周期。
Docker安装
官方提供的安装教程:
https://docs.docker.com/install/linux/docker-ce/centos/#install-using-the-repository
CentOS安装要求:
Docker支持以下的CentOS版本:
· CentOS 7 (64-bit)
· CentOS 6.5 (64-bit) 或更高的版本
安装
目前,CentOS 仅发行版本中的内核支持 Docker。Docker 运行在 CentOS 7 上,要求系统为64位、系统内核版本为 3.10 以上。Docker 运行在 CentOS-6.5 或更高的版本的 CentOS 上,要求系统为64位、系统内核版本为 2.6.32-431 或者更高版本。
1校验版本
命令:uname -r 校验Linux内核版本(3.10以上版本)
从 2017 年 3 月开始 docker 在原来的基础上分为两个分支版本: Docker CE 和 Docker EE。
Docker CE 即社区免费版,Docker EE 即企业版,强调安全,但需付费使用。
本文介绍 Docker CE 的安装使用。
2移除旧的版本
sudo yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-selinux \
docker-engine-selinux \
docker-engine
如果yum报告未安装这些软件包,则可以。
3安装一些必要的系统工具:
安装所需的软件包。yum-utils提供了yum-config-manager 应用,并
device-mapper-persistent-data和lvm2由需要 devicemapper存储驱动程序。
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
4添加软件源信息
源1:(官方推荐)
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
源2:(阿里云源)
sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
5、更新 yum 缓存:
sudo yum makecache fast
6安装 Docker-CE
sudo yum -y install docker-ce
7启动 Docker 后台服务
sudo systemctl start docker
8重启 Docker服务
sudo systemctl restart docker
9安装成功后可通过查看
docker version
10测试
通过运行hello-world 映像来验证是否正确安装了Docker Engine-Community
sudo docker run hello-world
卸载
执行以下命令来删除 Docker CE:
$ sudo yum remove docker-ce
$ sudo rm -rf /var/lib/docker
Docker 镜像加速器
鉴于国内网络问题,后续拉取 Docker 镜像十分缓慢,我们可以需要配置加速器来解决
使用Docker 的时候,需要经常从官方获取镜像,但是由于显而易见的网络原因,拉取镜像的过程非
常耗时,严重 影响使? Docker 的体验。因此 DaoCloud 推出了加速器?具解决这个难题,通过智能
路由和缓存机制,极?提 升了国内网络访问 Docker Hub 的速度,目前已经拥有了?泛的?户群体,
并得到了 Docker 官方的大力推荐。 如果您是在国内的?络环境使用 Docker,那么 Docker 加速器?
定能帮助到您。
Docker 官方和国内很多云服务商都提供了国内加速器服务,例如:
- Docker 官方提供的中国 registry mirror
- 阿里云加速器
- DaoCloud 加速器
Docker官方加速器
我们以 Docker 官方加速器进行介绍
https://docs.docker.com/registry/recipes/mirror/#use-case-the-china-registry-mirror
通过命令查看:在 /etc/docker/daemon.json 中写入如下内容(如果文件不存在请新建该文件)
{
"registry-mirrors":["https://registry.docker-cn.com"]
}
注意,一定要保证该文件符合 json 规范,否则 Docker 将不能启动
重启Docker:
sudo systemctl daemon-reload
sudo systemctl restart docker
阿里云加速器
阿里云的镜像源有个加速器,可以加速你获取容器的速度。这个加速器地址是每个人专属的。网址: https://dev.aliyun.com/ (大家也可以用我个人加速器,没有限制)
https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://gxeo3yz7.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
检查加速器是否生效
配置加速器之后,如果拉取镜像仍然十分缓慢,请手动检查加速器配置是否生效,
在命令行执行 docker info,查看镜像地址是否匹配,如匹配,说明配置成功
docker info
测试
尝试从docker库中下载镜像:
docker pull tomcat
通过观察,下载速度明显提升。
查看docker下载的镜像内容:
docker images
下载指定的镜像版本:
docker images tomcat:9-jre11
启动tomcat:
docker run –p 8080:8080 tomcat