Docker 基础学习(一)

Docker官网:https://docker.com/

中文翻译非常好的学习地址:http://dockerpool.com/static/books/docker_practice/index.html

学习一项新技术之前,我们应该只要是什么?为什么使用?怎么使用?

对于Docker,我们依然按此步骤来学习:

1、什么是Docker?

2、为什么使用Docker?

3、怎么使用Docker?

什么是Docker?(引自:http://dockerpool.com/static/books/docker_practice/introduction/what.html

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

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

Docker 项目的目标是实现轻量级的操作系统虚拟化解决方案。 Docker 的基础是 Linux 容器(LXC)等技术。

在 LXC 的基础上 Docker 进行了进一步的封装,让用户不需要去关心容器的管理,使得操作更为简便。用户操作 Docker 的容器就像操作一个快速轻量级的虚拟机一样简单。

下面的图片比较了 Docker 和传统虚拟化方式的不同之处,可见容器是在操作系统层面上实现虚拟化,直接复用本地主机的操作系统,而传统方式则是在硬件层面实现。

为什么要用Docker?(引自:http://dockerpool.com/static/books/docker_practice/introduction/why.html

作为一种新兴的虚拟化方式,Docker 跟传统的虚拟化方式相比具有众多的优势。

首先,Docker 容器的启动可以在秒级实现,这相比传统的虚拟机方式要快得多。 其次,Docker 对系统资源的利用率很高,一台主机上可以同时运行数千个 Docker 容器。

容器除了运行其中应用外,基本不消耗额外的系统资源,使得应用的性能很高,同时系统的开销尽量小。传统虚拟机方式运行 10 个不同的应用就要起 10 个虚拟机,而Docker 只需要启动 10 个隔离的应用即可。

具体说来,Docker 在如下几个方面具有较大的优势。

更快速的交付和部署

对开发和运维(devop)人员来说,最希望的就是一次创建或配置,可以在任意地方正常运行。

开发者可以使用一个标准的镜像来构建一套开发容器,开发完成之后,运维人员可以直接使用这个容器来部署代码。 Docker 可以快速创建容器,快速迭代应用程序,并让整个过程全程可见,使团队中的其他成员更容易理解应用程序是如何创建和工作的。 Docker 容器很轻很快!容器的启动时间是秒级的,大量地节约开发、测试、部署的时间。

更高效的虚拟化

Docker 容器的运行不需要额外的 hypervisor 支持,它是内核级的虚拟化,因此可以实现更高的性能和效率。

更轻松的迁移和扩展

Docker 容器几乎可以在任意的平台上运行,包括物理机、虚拟机、公有云、私有云、个人电脑、服务器等。 这种兼容性可以让用户把一个应用程序从一个平台直接迁移到另外一个。

更简单的管理

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

对比传统虚拟机总结

特性 容器 虚拟机
启动 秒级 分钟级
硬盘使用 一般为 MB 一般为 GB
性能 接近原生 弱于
系统支持量 单机支持上千个容器 一般几十个

Docker怎么使用?这个问题是一个非常大的问题,关系着我们接下来的一周两周或者一个月都要学习的内容。所以我们要一步一步的走...

Docker安装:

Docker支持centos6及以后的版本,作者以Centos6.5为例进行安装学习。其他版本可以参考https://docs.docker.com/engine/installation/centos/

官方文档上说Docker需要64位 Centos,并且内核在3.10以上。

1、检查Centos版本

[[email protected] /]# uname -r

2.6.32-431.el6.x86_64

版本低于3.10,需要进行升级内核。此处说明下,小编没有升级也可以安装Docker,功能也可以使用...

不过还是要根据官网文档来升级内核吧...

升级前系统镜像:CentOS 6.5 64位

内核版本:2.6.32-431.el6.x86_64

升级内核步骤:

1、rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org                     (导入public key

2、rpm -Uvh http://www.elrepo.org/elrepo-release-6-6.el6.elrepo.noarch.rpm     (安装elrepo到内核为2.6.32的CentOS中

3、yum --enablerepo=elrepo-kernel install kernel-lt -y                                          (安装kernel-lt(long term support)长期支持版本

注:因为该源在国外,直接使用yum方式使用elrepo源会比较慢,所以建议使用rpm的方式安装kernel-lt,访问

http://elrepo.org/linux/kernel/el6/x86_64/RPMS/

下载对应的rpm包,使用rpm方式安装:

rpm -ivh kernel-lt-3.10.93-1.el6.elrepo.x86_64.rpm

另外关于kernel-lt的介绍,可直接访问http://elrepo.org/tiki/kernel-lt

4、编辑grub.conf文件,修改Grub引导顺序

vim /etc/grub.conf

确认安装的新内核的位置,将default的值调整为新内核的顺序,如本次升级案例中新装的内核位置为0,所以将default修改为0,保存退出,reboot重启服务器。

5、重启系统后检查内核

[[email protected] /]# uname -r
3.10.93-1.el6.elrepo.x86_64

6、内核升级完成后进行测试

升级完成后可以安装docker进行使用观察:

yum  install  -y  docker-io

service  docker  start

docker  pull  centos:centos 7

docker  run  -t  -i  centos:centos 7  /bin/bash

未完待续...

时间: 2024-10-29 05:42:58

Docker 基础学习(一)的相关文章

【补充】docker基础学习

docker 基础知识 之前写了一篇docker未授权访问的文章,现在来补充一下docker基础知识,以便更好的学习docker上的漏洞. docker是一款轻量级的虚拟化的产品,它属于层级化的架构.最底层是LXC和文件系统AUFS,上面是各种镜像,docker实际上是具有依赖关系的多个层组成的,不同的container可能共享底层的资源.docker的核心是基于cgroup和namespace隔离和限制资源. Cgroups是control groups的缩写,是Linux内核提供的一种可以限

docker基础学习一

docker 介绍 1.docker 是什么 ? docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖到一个可移植的容器中. 然后发布到任何一个 linux 系统上面. 特点: docker 容器启动和停止都很快,直接在宿主中可以完成. docker 容器占用的系统资源少,一台宿主可以运行很多容器 docker 操纵方便,简单易学习 docker 可以通过 dockerfile 配置文件自动创建和部署. docker 容器也是沙箱机制的,相互完全隔离 三大核心概念 : 镜像,

docker基础学习三

一.Dockerfile学习 由一系列的参数和命令构成的脚本.这些命令应用于基础镜像并最终创建一个新的镜像.基础镜像就是操作系统级别的镜像. 常用命令 FROM image_name:tag 定义了使用哪个基础镜像启动构建流程 MAINTAINER user_name 声明镜像的创建者 ENV key value 设置环境变量 (可以写多条) RUN command 是Dockerfile的核心部分(可以写多条) ADD source_dir/file dest_dir/file 将宿主机的文件

docker基础学习笔记

容器这四点一定要懂:注册服务器.仓库.镜像.容器 他们的范围依次缩小 注册服务器可以有多个仓库,仓库里面可以有多个镜像,每个镜像可以生成多个容器. docker属于C/S结构 支持三种连接方式: unix:///var/run/docker.sock tcp://host:port fd://socketfd docker在Centos7安装 1.yum安装docker yum -y install docker 2.安装结束后,启动docker systemctl start docker #

docker基础学习

一.什么是Docker 1.什么是Docker Docker是一个由GO语言写的程序运行的"容器"(Linux containers, LXCs):  目前云服务的基石是操作系统级别的隔离,在同一台物理服务器上虚拟出多个主机. Docker则实现了一种应用程序级别的隔离:  它改变我们基本的开发.操作单元,由直接操作虚拟主机(VM),转换到操作程序运行的"容器"上来. Docker是为开发者和系统管理员设计的,用来发布和运行分布式应用程序的一个开放性平台. Dock

docker基础学习二

一 部署Mysql 搜索镜像 docker search mysql 拉取镜像 docker pull centos/mysql-57-centos7 创建Mysql 容器 docker run -di --name=docker_mysql -p 33306:3306 -e MYSQL_ROOT_PASSWORD=root centos/mysql-57-centos7 33306是宿主机的端口,3306是docker的端口,MMYSQL_ROOT_PASSWORD指定Mysql ,root的

Docker 学习笔记【2】 Docker 基础操作实,Docker仓库、数据卷,网络基础学习

Docker 学习笔记[3] Docker 仓库实操,创建私有仓库,实操数据卷.数据卷容器,实操 网络基础  ---------高级网络配置和部分实战案例学习 ============================================================= Docker 学习笔记[1]Docker 相关概念,基本操作--------实操记录开始 ============================================================= 被

docker基础教程

body{ font-family: 微软雅黑; font-size: 11pt; line-height: 1;}html, body{ color: ; background-color: ;}h1 { font-size:1.5em; font-weight:bold;}h2 { font-size:1.4em; font-weight:bold;}h3 { font-size:1.3em; font-weight:bold;}h4 { font-size:1.2em; font-weig

零基础学习openstack【完整中级篇】及openstack资源汇总

1.你是如何学习openstack的?2.你对openstack的组件了解多少?3.你认为openstack该如何学习? 一直想写关于openstack的方面的内容,今天终于整理完成.算是完成一桩心事,内容整合来自: 零基础学习openstack(上)[中级篇] 零基础学习openstack(下)[中级篇] 是在 零基础学习openstack[初级篇]基础上的一个继续: 初级篇,我们主要是有这么一个概念,openstack的组成openstack由哪些部分来组成: Identity(代号为“Ke