一、Docker 概述

Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从Apache2.0协议开源。Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口(类似 iPhone 的 app),更重要的是容器性能开销极低。

二、Docker 的优点

 2.1、简化程序:

Docker 让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,便可以实现虚拟化。Docker改变了虚拟化的方式,使开发者可以直接将自己的成果放入Docker中进行管理。方便快捷已经是 Docker的最大优势,过去需要用数天乃至数周的 任务,在Docker容器的处理下,只需要数秒就能完成。

2.2、避免选择恐惧症:

如果你有选择恐惧症,还是资深患者。Docker 帮你 打包你的纠结!比如 Docker 镜像;Docker 镜像中包含了运行环境和配置,所以 Docker 可以简化部署多种应用实例工作。比如 Web 应用、后台应用、数据库应用、大数据应用比如 Hadoop 集群、消息队列等等都可以打包成一个镜像部署。

2.3、节省开支:

          一方面,云计算时代到来,使开发者不必为了追求效果而配置高额的硬件,Docker 改变了高性能必然高价格的思维定势。Docker 与云的结合,让云空间得到更充分的利用。不仅解决了硬件管理的问题,也改变了虚拟化的方式。

三、我们为什么要用Docker

  • 更快速的交付和部署(使用docker,开发人员可以用镜像来快速构建一套标准的开发环境;开发完成之后,测试和运维人员可以直接使用相同环境来部署代码)
  • 更轻松的迁移和扩展(docker容器几乎可以在任意平台上运行,包括物理机、虚拟机、公有云、私有云、个人电脑、服务器等。可以在不同的平台轻松地迁移应用)
  • 更简单的更新管理(使用Dockerfile,只需要修改小小的配置,就可以替代以往大量的更新工作)

四、Docker“组件间”

  • Client(Docker客户端):是Docker的用户界面,可以接受用户命令(docker build,docker pull...)和配置标识,并与Docker daemon通信
  • Images(Docker镜像):是一个只读模板,含创建Docker容器的说明,它与操作系统的安装光盘有点像
  • Containers(容器):镜像的运行实例,镜像与容器的关系类比面向对象中的类和对象
  • Registry:是一个集中存储与分发镜像的服务。最常用的Docker Registry是官方的Docker Hub

五、Linux 下安装docker

Docker 运行在 CentOS 7 上,要求系统为64位、系统内核版本为 3.10 以上。CentOS7系统下安装Docker为例。Docker 软件包和依赖包已经包含在默认的 CentOS-Extras 软件源里,安装命令如下:

yum -y install docker

启动 Docker 后台服务:

service docker start

查看Docker 版本:

docker version

六、Docker 加速器

鉴于国内网络问题,后续拉取 Docker 镜像十分缓慢,我们可以需要配置加速器来解决,我使用的是阿里的加速器。

  • 你只需要登录容器Hub服务的控制台,左侧的加速器帮助页面就会显示为你独立分配的加速地址 如:https://xxxxx.mirror.aliyuncs.com
  • 配置镜像加速器,针对Docker客户端版本大于 1.10.0 的用户,您可以通过修改daemon配置文件/etc/docker/daemon.json来使用加速器:
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://xxxxx.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker

最新文章

  1. ThinkPHP的异步搜索
  2. Android系统的架构
  3. 分享在winform下实现左右布局多窗口界面
  4. atitit。自定义uml MOF EMF体系eclipse emf 教程o7t
  5. 4kbps~15kbps语音编码器基础框架ACELP
  6. iOS开发之网络编程--使用NSURLConnection实现大文件下载
  7. Angularjs - 路由 angular-ui-router
  8. 【转】 Linux进程间通信
  9. 图片_ _优化Bitmap加载图片1
  10. Asp.Net+Extjs实现登录
  11. XXX 用户 is not in the sudoers file. This incident will be reported 的问题解决方案
  12. oracle 数据库用户登录相关
  13. Android Studio 新建项目的R文件丢失的解决方法
  14. 如何js编译的文件dll对于网页电话
  15. spring之注解
  16. 蓝桥杯-大衍数列-java
  17. ios之好用的Reachability
  18. JavaAgent入门
  19. Introducing Deep Reinforcement
  20. BZOJ2878 [Noi2012]迷失游乐园 【基环树 + 树形dp + 期望dp】

热门文章

  1. ext4文件系统特性浅析
  2. JavaScript this用法
  3. 自定义view(结合刻度盘学习)
  4. The number of sections contained in the collection view after the update (1) must be equal to the number of sections contained in the collection view before the update (0), plus or minus the number of
  5. vim内替换文件内容
  6. NodeJ node.js基础
  7. SDL2 undefined reference to `SDL_Init&#39; 问题
  8. redis-数据类型及命令
  9. 大数据 : Hadoop reduce阶段
  10. angularjs与vue循环数组对象是区别