一丶先了解下,什么是 Docker?为什么会有 Docker?Docker 的优势?docker的组成?
1.为什么会有 Docker?
我们知道一款产品从开发到上线,从开发环境到生成环境。作为开发和运维人员之间协作需要考虑很多问题,尤其是当我们的产品多版本迭代之后,不同环境之间的兼容就会成为一个大问题; 这时 Docker 的出现就解决了这一难题,Docker 的出现使我们开发的软件可以“带环境安装”,即安装的时候,可以把原始环境一模一样的的复制过来,不用在担心环境不一致导致“开发时可以正常运行,生成环境就会出问题”,“在我的机器上可以正常运行,在别人的机器上就不能运行”的问题了。
2.什么是docker?
(1)Docker 就像是一个轻量级的虚拟机,Docker是一个轻量级的容器,我们可以将环境交给 Docker 来管理,当我们需要移植我们的产品的时候,就可以将环境整个的迁移到另一台主机上,而不向虚拟机一样,迁移一台虚拟机极其资源;
(2)Docker 是一个开源的应用容器引擎,基于 Go 语言开发。
(3)Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口(类似 iPhone 的 app),更重要的是容器性能开销极低。
总之:Docker相较于虚拟机来说具有更加轻量,启动更快,效率更高,可移植性更强等优势,实现了“一次封装,到处运行”,不用在关心环境的不一致问题。
3.docker的优势
(1)运行环境的一致性:Docker 的镜像提供了除了内核之外完整的运行环境,确保了应用运行的一致性;
(2)更快速地启动部署:可以做到秒级,甚至毫秒级的的启动时间。大大节约了开发、测试、部署的时间;
(3)更好的隔离性:每个服务器都是独立运行的、完全隔离的。避免公用的服务器,资源会容易受到其他用户的影响;
(4)弹性伸缩、快速扩展:能够更好的处理集中爆发式的服务器使用压力;
(5)迁移更加方便:“带环境安装”;
(6)持续交付和部署:使用 Docker 可以通过定制镜像来实现持续集成,交付,部署;
4.docker的组成
Docker 是一个 C/S 架构程序。Docker 客户端只需要向 Docker 服务器或者守护进程发出请求,服务器或者守护进程将完成所有工作并返回结果。Docker 提供了一个命令行工具 Docker 以及一整套 RESTful API。你可以在同一台宿主机上运行 Docker 守护进程和客户端,也可以从本地的 Docker 客户端连接到运行在另一台宿主机上的远程 Docker 守护进程。
名称****说明Docker镜像(images)用于容器创建的模板。基于联合文件系统的一种层式结构,由一系列指令一步一步构建出来。Docker容器(Container)容器是独立运行的一个或一组应用,镜像相当于类,容器相当于类的实例Docker客户端(Client)通过命令行或其他工具使用Docker API 与Docker的守护进程通信Docker主机(Host)一个物理或虚拟机用于执行Docker守护进程和容器Docker守护进程是Docker服务器端进程。负责支撑Docker容器的运行和镜像的管理Docker仓库 DockerHub(Registry) 用来保存镜像,可以理解代码控制中心的代码仓库,可以将自己的镜像推送仓库上供他人下载
5. 基本概念
Docker 包括三个基本概念:
(1)镜像(Image):Docker 镜像(Image),就相当于是一个 root 文件系统。
(2)容器(Container):镜像(Image)和容器(Container)的关系,就像是面向对象程序设计 中的类和实例一样,镜像是静态的定义,容器是镜像运行时的实体。容器可以被创建、启动、停止、删除、暂停等。容器与镜像的关系类似于面向对象编程中的对象与类。Docker 使用客户端-服务器 (C/S) 架构模式,使用远程API来管理和创建Docker容器。Docker 容器通过 Docker 镜像来创建。也可以这样做类比,镜像理解为静态的程序,而容器理解为运行起来后的进程。容器使用写时复制技术,修改后容器的文件是独立的。
(3)仓库(Repository):仓库可看成一个代码控制中心,用来保存镜像。
二、安装前必读
在安装 Docker 之前,先说一下配置,我这里是Centos7
Linux 内核:官方建议 3.10 以上,3.8以上貌似也可。
1.请用root用户登录虚拟机,以保证有足够的权限进行操作。
2.可以使用第三方终端连接虚拟机,这样会让我们配置的效率更高。(推荐CRT)
3.了解: Docker 分为docker SE(社区版,免费)以及docker EE(企业版,收费),因此我们这里安装的是docker SE。
1.查看当前的内核版本
uname -r
我这里是3.10 ,满足条件。
2.使用 root 权限更新 yum 包(生产环境中此步操作需慎重,看自己情况,学习的话随便搞)
yum -y update
这个命令不是必须执行的,看个人情况,后面出现不兼容的情况的话就必须update了
- 注意
- yum -y update:升级所有包同时也升级软件和系统内核;
- yum -y upgrade:只升级所有包,不升级软件和系统内核
- 也可以其他的命令,更新yum软件包索引:yum maakecache fast
3.卸载旧版本(如果之前安装过的话)
yum remove docker docker-common docker-selinux docker-engine
三、安装Docker的详细步骤
1.安装需要的软件包, yum-util 提供yum-config-manager功能,另两个是devicemapper驱动依赖
yum install -y yum-utils device-mapper-persistent-data lvm2
2.设置 yum 源
设置一个yum源,也就是docker ce软件源(看个人习惯,我喜欢用阿里云的)
- yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo (阿里仓库)
** 3.选择docker版本并安装(安装 docker-ce(社区版))**
(1)查看可用版本有哪些
yum list docker-ce --showduplicates | sort -r
(2)选择一个版本并安装:**
yum install docker-ce-版本号
**
yum -y install docker-ce-18.03.1.ce ---我是下载了这个版本好根据自己喜欢。
提醒:如果没有指定版本号的话,系统是默认下载最新的版本号
命令:yum -y install docker-ce
(3)查看是否安装成功
查看镜像:docker images
查看版本:docker version
(4)查看Docker的运行状态(一般刚安装好的话都是running状态的)
systemctl status docker
启动命令:systemctl start docker
停止命令:systemctl stop docker
设置开机启动:systemctl enable docker
4.配置Docker镜像加速器(阿里云)
** !!因为docker下载镜像是从docker hub中下载,是国外的,所以下载比较慢,可以看作maven**
(1)去到阿里云官方网址,找到容器镜像服务:https://www.aliyun.com
(2)进入管理控制台(这里没有开通服务的需要开通一下容器服务)
(3)点击镜像加速器,选择CentOS
(4)(注意每个人的配置加速器的都会随机生成的,所以根据你打开后阿里云镜像加速器提供的代码进行配置)(执行文件后会自动生成daemon.json文件)
mkdir -p /etc/docker
**tee /etc/docker/daemon.json <<-'EOF' **
{
**"registry-mirrors": ["https://kskdqwg1.mirror.aliyuncs.com"] **
}
EOF
启动docker后台线程:sudo systemctl daemon-reload
重启docker服务 :sudo systemctl daemon-reload
5.使用hello-world镜像测试docker
运行命令:docker run hello-world
(1)docker run运行思维导图
(2)查看镜像
** docker images**
可以看到刚才在执行docker run hello-world的时候,已经将hello-world镜像拉去到本地镜像中了。
四丶常用的操作命令
1.启动与停止命令
命令 解释systemctl start docker 启动 Dockersystemctl stop docker停止dockersystemctl status docker查看docker状态systemctl restart docker重启dockersystemctl enable docker 开机启动docker info 查看docker概要信息docker --help 查看docker帮助文档
2.镜像相关命令
命令 **** 解释docker images查看本地存在的镜像docker search 镜像名称从网络中查找需要的镜像docker pull 镜像名称将远程镜像拉取到本地docker rmi [-f] 镜像ID (强制)删除本地镜像docker rmi -f 镜像名1:TAG 镜像名2:TAG 删除多个镜像docker rmi -f $(docker images -qa) 删除所有镜像
至此centos7安装Docker就完成了。后面将会讲讲如何配置私人仓库,Docker 的应用容器部署,如何构建镜像,部署hadoop集群。
版权归原作者 让大妈尖叫 所有, 如有侵权,请联系我们删除。