1 docker 介绍和安装
1. docker介绍
1.1 docker产生的背景
Docker 是云时代的产物,它的诞生是一种必然。
对于云计算\云服务的相关概念,我们不会去阐述。不过如果想了解 Docker,那么必须对云服务的一些运营模式有所了解。
云服务的运营模式:
- IaaS(基础设施即服务):经营的是基础设施,比如阿里云服务器(只安装操 作系统)
- PaaS(平台即服务):经营的是平台,比如 MySQL 开发平台(安装在 linux 里面现成的平台)、redis 开发平台。
- SaaS(软件即服务):经营的是软件,比如公司的OA系统(部署到远程服务 器中的 OA 软件)
Docker 就是伴随着 PaaS 产生的。
1.2 什么是docker
Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应 用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。
docker就是一种虚拟化容器技术
通过 Docker 这种虚拟化容器技术,我们可以对物理机的资源进行更加合理有效 的利用,可以将一台物理机器虚拟化出很多个拥有完整操作系统,并且相互独立 的“虚拟计算机”。
1.3 那什么是虚拟化呢?
在计算机中,虚拟化(英语:Virtualization)是一种资源管理技术,是将计算机 的各种实体资源,如服务器、网络、内存及存储等,予以抽象、转换后呈现出来, 打破实体结构间的不可切割的障碍,使用户可以比原本的组态更好的方式来应 用这些资源。这些资源的新虚拟部分是不受现有资源的架设方式,地域或物理组 态所限制。一般所指的虚拟化资源包括计算能力和资料存储。
在实际的生产环境中,虚拟化技术主要用来解决高性能的物理硬件产能过剩和老 的旧的硬件产能过低的重组重用,透明化底层物理硬件,从而最大化的利用物理 硬件。
虚拟化技术种类很多,例如:软件虚拟化、硬件虚拟化、内存虚拟化、网络虚拟 化、桌面虚拟化、服务虚拟化、虚拟机等等。
最常用的虚拟化技术有:全虚拟化和操作系统(OS)虚拟化。
比如,VMware workstation 就是全虚拟化的实现。
比如,我们要讲的 Docker,就是基于操作系统虚拟化技术的一种实现。
基于操作系统创建出一些相互独立的、功能虚拟化技术有多种实现方式,有基于 硬件进行虚拟化的技术,而 Docker 只是针对操作系统进行虚拟化,对于硬件资 源的使用率更低。
- VMware和docker的对比:
- 启动速度快,Docker 容器启动操作系统在秒级就可以完成,而 VMware 却是达到分钟级。
- 系统资源消耗低,一台 Linux 服务器可以运行成千上百个 Docker 容器,而VMware 大概只能同时运行 10 个左右。
- 更轻松的迁移和扩展,由于 Docker 容器比 VMware 占用更少的硬盘空间, 在需要搭建几套软件环境的情况下,对安装好的 Docker 容器进行迁移会更 快捷,更方便。而且 Docker 容器几乎可以在任意的平台上运行,包括虚拟 机、物理机、公有云,私有云,个人电脑等,这种兼容性,可以让用户将一 个应用程序从一个平台直接迁移到另一个平台。
1.4 docker的体系架构
- Docker Client客户端
- Docker Daemon守护进程
- Docker Image镜像
- Docker Container容器
1.5 docker中的概念
- docker守护进程: docker的守护进程运行在一个主机机器中, 用户不直接和守护进程交互, 而是通过docker客户端
- docker客户端: docker客户端是以二进制的形式出现, 是docker最基本的用户接口, 他用来接收用户的命令, 然后和docker守护进程来沟通
- docer镜像: docker镜像就是一个可读的模板, 我们可以使用docker镜像来创建docker容器, docker提供了一个简单的机制来创建对象或者更新自己已有的镜像, 也可以从其他人那里下载一个已经做好的镜像来使用.
- docker容器: 容器是用来运行应用的. 容器是从镜像中创建的运行实例, 它可以被启动, 开始, 停止, 删除. 每一个容器都相互隔离, 保证安全.
- docker注册处(Registry&Repository): docker注册处保留镜像, 这些是来自于上传或者下载镜像的公众或者私有存储的地方. 公共的docer注册处由docker hub提供.
- Registry 是集中存放镜像文件的场所
- Repository 是对于其中的镜像进行分类管理.
- 一个Registry中会有过个Repository, 一个Repository中会有多个不同tag的Image, 比如: 名称为centos的Repository仓库下, 有tag为6或者7的image镜像
2. 安装docker
安装之前要先关闭selinux和firewalld
systemctl disable firewalld
docker默认安装的操作系统是ubuntu.
官网有安装各种环境的指南, 请参考https://docs.docker.com/
我们主要来说一下centos7.x的安装, 因为这个在服务器上用的是最多的.
2.1 centos7安装新版docker
yum install -y yum-utils device-mapper-persistent-data lvm2 yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo yum install docker-ce -y curl -sSL https://get.daocloud.io/daotools/set_mirror.sh | sh -s http://bc437cce.m.daocloud.io# 设置docker加速器 systemctl start docker systemctl enable docker docker version #查看版本 docker run hello-world #运行一个测试命令
2.2 配置镜像加速
mkdir -p /etc/docker [root@bogon ~]# cat /etc/docker/daemon.json {"registry-mirrors": ["http://hub-mirror.c.163.com"] } systemctl daemon-reload #重新加载服务 systemctl restart docker 再次下载镜像的时候速度会加快