您的位置:首页 > 运维架构 > Docker

docker学习笔记(一)——docker简介及安装

2018-02-27 23:19 555 查看
最近在学习docker,决定把学习及动手实践的过程记录下来。

本系列教程根据大讲台—Docker最佳实战整理

1. 什么是docker

Docker 是一个开源项目,诞生于 2013 年初,最初是 dotCloud 公司内部的一个业余项目。它基于 Google 公司推出的 Go 语言实现。 项目后来加入了 Linux 基金会,遵从了 Apache 2.0 协议,项目代码在 GitHub 上进行维护。

Docker 自开源后受到广泛的关注和讨论,以至于 dotCloud 公司后来都改名为 Docker Inc。Redhat 已经在其 RHEL6.5 中集中支持 Docker;Google 也在其 PaaS 产品中广泛应用。

Docker的主要目标:

通过对应用组件的封装、分发、部署、运行等生命周期的管理,达到应用级别的一次封装,到处运行;

小贴士:这里的应用组件,可以是WEB应用,也可以是一套数据库服务,甚至可以是一个操作系统编译器。

2. 为什么使用docker

Docker容器虚拟化的优点:

环境隔离:

通过cgroups和namesapce进行实现资源隔离,实现一台机器运行多个容器互不影响。

更快速的交付部署:

使用docker,开发人员可以利用镜像快速构建一套标准的研发环境;开发完成后,测试和运维人员可以直接通过使用相同的环境来部署代码。Docker可以快速创建和删除容器,实现快速迭代,大量节约开发、测试、部署的时间。并且,各个步骤都有明确的配置和操作,整个过程全程课件,使团队里更容易理解应用创建和工作的过程。

更高效的资源利用:

docker容器的运行不需要额外的虚拟化管理程序的支持,它是内核级的虚拟化,可以实现更高的性能,同时对资源的额外需求很低。

更易迁移扩展:

docker容器几乎可以在任意的平台上运行,包括乌力吉、虚拟机、公有云、私有云、个人电脑、服务器等,这种兼容性让用户可以在不同平台之间轻松的迁移应用。

更简单的更新管理:

使用Dockerfile,只需要小小的配置修改,就可以替代以往的大量的更新工作。并且所有修改都是以增量的方式进行分发和更新,从而实现自动化和高效的容器管理。

3. docker的安装

环境介绍:

操作系统:CentOS 7.4 64bit

安装步骤

安装准备:

要求: 内核版本最低为3.10

查看当前内核版本: uname -r



通过yum方式安装docker:

第一步:更新yum源:

sudo yum update


第二步:增加docker的yum源:

输入命令:

sudo
a235
tee /etc/yum.repos.d/docker.repo <<-'EOF'


输入:

[dockerrepo]
name=Docker Repository
baseurl=https://yum.dockerproject.org/repo/main/centos/$releasever/
gpgcheck=1
gpgkey=https://yum.dockerproject.org/gpg
EOF


这样我们就添加了yum源,如图:



可以通过命令:

sudo vi /etc/yum.repos.d/docker.repo


进行查看:



第三步:通过yum安装docker

sudo yum install docker-engine




第四步:启动docker服务

sudo service docker start


第五步:查看版本信息,通过测试用例验证docker是否安装成功

验证docker版本:

sudo docker version




测试:

sudo docker run hello-world




hello-world是docker官方提供的一个容器,如果你也能看到图中类似的输出内容说明你也安装成功了。

4. docker的配置

以上的命令如果不用root用户执行一定要记得加上sudo,当然我们也可以通过配置实现非root用户不加sudo直接执行命令。

创建docker用户组:

sudo groupadd docker


增加当前用户到docker分组:

sudo usermod -aG docker xxx    (xxx为你的普通用户名字)


验证在不使用sudo的情况下docker是否正常工作:

docker run hello-world


设置docker开机启动

sudo chkconfig docker on


docker卸载

查看安装包

yum list installed | grep docker


移除安装包:

sudo yum -y remove docker-engine.x86_64


清除所有docker依赖文件

rm -rf /var/lib/docker


删除用户创建的配置文件

5. Docker的核心概念

Docker核心概念之镜像:

Docker 镜像就是一个只读的模板。

例如:一个镜像可以包含一个完整的 ubuntu 操作系统环境,里面仅安装了 Apache 或用户需要的其它应用程序。

镜像可以用来创建 Docker 容器。

创建Docker镜像有几种方式,多数是在一个现有镜像基础上创建新镜像,因为几乎你需要的任何东西都有了公共镜像,包括所有主流Linux发行版,你应该不会找不到你需要的镜像。不过,就算你想从头构建一个镜像,也有好几种方法。

要创建一个镜像,你可以拿一个镜像,对它进行修改来创建它的子镜像 。

Docker核心概念之容器:

Docker 利用容器来运行应用。

容器是从镜像创建的运行实例。它可以被启动、开始、停止、删除。每个容器都是相互隔离的、保证安全的平台。

可以把容器看做是一个简易版的 Linux 环境(包括root用户权限、进程空间、用户空间和网络空间等)和运行在其中的应用程序。

注:镜像是只读的,容器在启动的时候创建一层可写层作为最上层。

Docker核心概念之仓库:

仓库是集中存放镜像文件的场所。

有时候会把仓库和仓库注册服务器(Registry)混为一谈,并不严格区分。实际上,仓库注册服务器上往往存放着多个仓库,每个仓库中又包含了多个镜像,每个镜像有不同的标签(tag)。

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: