开发者社区> wsc449> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

docker介绍以及安装

简介: 应用场景 给你一台笔记本,笔记本的系统是windows的,如果想使用linux系统,那么得在windows上安装虚拟机,然后安装linux系统,一般一台8G内存的笔记本,可以建并启动6-7个1G内存的linux虚拟机,如果再创建并启动虚拟机那么电脑将无法承受,如果用了docker技术,那么就可以建成千上万个docker容器,一个docker容器就相当于一个linux虚拟机,它可以将计算机资源利用最大化,效率化,所以docker是一个虚拟的技术。
+关注继续查看

应用场景

给你一台笔记本,笔记本的系统是windows的,如果想使用linux系统,那么得在windows上安装虚拟机,然后安装linux系统,一般一台8G内存的笔记本,可以建并启动6-7个1G内存的linux虚拟机,如果再创建并启动虚拟机那么电脑将无法承受,如果用了docker技术,那么就可以建成千上万个docker容器,一个docker容器就相当于一个linux虚拟机,它可以将计算机资源利用最大化,效率化,所以docker是一个虚拟的技术。

docker概述

1.1 docker简介

Docker 是 2014 年最为火爆的技术之一,几乎所有的程序员都听说过它。Docker 是一种“轻量级”容器技术,几乎动摇了传统虚拟化技术的地位,现在国内外已经有越来越多的公司开始逐步使用 Docker 来替换现有的虚拟化平台了。

先来回顾一下传统虚拟化技术的体系架构:

这里写图片描述

可见,我们在宿主机的操作系统上,可安装多个虚拟机,而在每个虚拟机中,通过虚拟化技术,实现了一个虚拟操作系统,随后,就可以在该虚拟操作系统上,安装自己所需的应用程序了。

我们知道,启动虚拟机就像启动一台计算机,初始化过程是相当慢的,需要等很久,才能看到登录界面。一旦虚拟机启动以后,就可以与宿主机建立网络连接,确保虚拟机与宿主机之间是互联互通的。不同的虚拟机之间却是相互隔离的,也就是说,彼此并不知道对方的存在,但每个虚拟机占用的都是宿主机的硬件与网络资源。

我们再来对比一下 Docker 技术的体系架构吧:

这里写图片描述

可见,在宿主机的操作系统上,有一个 Docker 服务在运行(或者称为“Docker 引擎”),在此服务上,我们可开启多个 Docker 容器,而每个 Docker 容器中可运行自己所需的应用程序,Docker 容器之间也是相互隔离的,同样地,都是占用的宿主机的硬件与网络资源。

Docker 容器相对于虚拟机而言,除了在技术实现上完全不一样以外,启动速度较虚拟机而言有本质的飞跃,启动一个容器只在眨眼瞬间。不管是虚拟机还是 Docker 容器,它们都是为了隔离应用程序的运行环境,节省我们的硬件资源,为我们开发人员提供福利。

我们再来看看 Docker 的 Logo 吧:

这里写图片描述

很明显,这是一只鲸鱼,它托着许多集装箱。我们可以把宿主机可当做这只鲸鱼,把相互隔离的容器可看成集装箱,每个集装箱中都包含自己的应用程序。

1.2 docker应用

docker能干些什么?

  • 1、加速本地开发(通过Docker能够快速搭建好开发和运行环境,并且该环境可以直接传递给测试和产品部署)
  • 2、自动打包和部署应用
  • 3、创建轻量、私有的PasS环境(例子:http://www.alauda.cn/,比如在林雀云上创建了centos7,本地就能进入虚拟机访问容器)
  • 4、自动化测试和持续集成部署
  • 5、部署并扩展Web应用、数据库和后端服务
  • 6、创建安全沙盒(使容器隔离)
  • 7、轻量级的桌面虚拟化(虚拟桌面,做为一个镜像进行管理,例子https://www.shiyanlou.com/课程里,给每个用户每堂课准备一台虚拟机,都是docker虚拟化的)。

1.3 docker三大核心

另外,docker主要包括三大核心概念,理解了这三个核心概念,就能理解docker的整个生命周期:

  • 1、镜像:类似于虚拟机镜像,可以将它理解为一个面向Docker引擎的只读模板,包含了文件系统,镜像是创建Docker容器的基础。
  • 2、容器:类似于一个轻量级的沙箱,Docker利用容器来运行和隔离应用。容器是从镜像的应用运行实例,可以将其启动,开始,停止,删除,而这些容器都是相互隔离,互不可见的。镜像自身是只读的,容器从镜像启动的时候,Docker会在镜像的最上层创建一个可写层,镜像本身保持不变。
  • 3、仓库:类似于代码仓库,是docker集中存放镜像文件的场所。

环境准备

2.1 环境配置

试验环境为:windows7系统,内存8G,固态硬盘120G,硬盘450G,ip为192.168.117.66,在windows7系统上,安装VMware,创建两个虚拟机,安装centos7.1系统,两个虚拟机内存2G,硬盘30G,ip分别为192.168.199.31(docker1),192.168.199.32(docker2)。

Docker私有仓库地址:192.168.199.31 hostname:docker1
Docker客户端地址: 192.168.199.32 hostname:docker2

2.2 配置虚拟机

首先在本地windows环境安装vmware,然后创建两个虚拟机,安装centos7.1系统(可以用centos6.5,但是需要升级内核,比较繁琐,还是用7.1好,一步到位,并且centos6.5和centos7.1安装docker以后的文件名,文件地址都不一样,可能和后文的操作不同,建议centos7.1),装好以后需要配置网路,主机名,关闭防火墙等,操作如下。

2.2.1. 修改hostname

安装完虚拟机,进入centos7.1系统后,进入控制台,由于centos7.1的命令与centos6.5等,有所区别,这里修改hostname输入如下命令:

 # sudo hostnamectl --static set-hostname  <host-name> 

上面命令的host-name根据文中设置为docker1,另一个设置为docker2。

2.2.2. 关闭防火墙

关闭防火墙输入如下命令:

 # systemctl stop firewalld

禁用防火墙输入如下命令:

 # systemctl disable firewalld

2.2.3. 关闭selinux

 # vi /etc/selinux/config

将SELINUX=enforcing修改为SELINUX=disabled。

2.2.4. 配置网络

由于设置虚拟机网络需要确定网段,确定网段方法如下:

  • 打开VMWare

这里写图片描述

  • 点开虚拟网络编辑器,按下图示点击

这里写图片描述

  • 查看自己虚拟机所对应的网段

这里写图片描述

因此,本地试验环境的虚拟机网段是199,各台机器可能不一样,需要查看后再进行网络配置。
配置centos7虚拟机网络,输入如下命令:

# vi /etc/sysconfig/network-scripts/ifcfg-ens192

注:最后的ipcfg-ens192文件,另一台机器可能不是个文件名,自己找虚拟机中的ifcfg-ens+一串数字的文件,进行修改。
修改如下:

TYPE=Ethernet
BOOTPROTO=static
DEFROUTE=yes
PEERDNS=yes
PEERROUTES=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_PEERDNS=yes
IPV6_PEERROUTES=yes
IPV6_FAILURE_FATAL=no
NAME=eno16777736
UUID=2d0d964b-91d1-4810-9eb7-b523689420d2
DEVICE=eno16777736
ONBOOT=yes
IPADDR=192.168.199.31
PREFIX=24
GATEWAY=192.168.199.2
DNS1=114.114.114.114
然后重启网络:

 # systemctl restart network.service

安装docker

安装docker,输入如下命令:

 # yum install docker
 # yum upgrade device-mapper-libs
 # service docker start
 # chkconfig docker on

查看docker状态:

 # service docker status

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
docker介绍与安装
docker介绍与安装
283 0
Docker 介绍 二 -- 安装
Docker 介绍 二 -- 安装
156 0
什么,容器太多操作不过来?我选择Docker Compose梭哈(下)
什么,容器太多操作不过来?我选择Docker Compose梭哈(下)
651 0
Docker 容器实战 (五):特殊的进程!
本文将以 Docker 和 Kubernetes 项目为核心,为大家详细介绍容器技术的各项实践与其中的原理。
1839 0
Docker 容器实战 (四):纷纷扰扰, 终归尘土
伴随着 Docker 公司的容器技术生态在云计算市场中站稳了脚跟,围绕着 Docker 项目进行的各个层次的集成与创新产品,也如雨后春笋般出现在这个新兴市场当中。而 Docker 公司,不失时机地发布了 Docker Compose、Swarm 和 Machine “三件套”,在重定义 PaaS 走出了最关键的一步。
1783 0
Docker 容器实战 (三) :Docker 的自我重新定位
Docker 公司为什么在 Docker 项目已经取得巨大成功之后,执意走回已经让无数先驱折戟的PaaS路呢? 实际上,Docker项目一直伴随着公司管理层和股东们的阵阵担忧。他们心里明白,虽然 Docker 项目备受追捧,但用户们最终要部署的,还是他们的网站、服务、数据库,甚至是云计算业务。本文将为大家讲解 Docker 的重新定位与发展之路。
1520 0
Docker 容器实战 (二) :“ 鲸鱼” 公司粉墨登场
随着 PaaS 深入人心,Cloud Foundry 为首的传统 PaaS,开始蓄力基础设施领域的平台化和 PaaS 化,于是发现了 PaaS 中的问题 。本文将为大家讲解 Docker 的崛起之路。
720 0
Docker 容器实战 (一) : 封神 Server 端技术
回溯历史源头相比于盛极一时的 AWSOpenStack 以 Cloud Foundry 为代表的 PaaS 项目,却成了当时云计算技术中的一股清流。Cloud Foundry项目已经基本度过了最艰难的概念普及和用户教育阶段,开启了以开源PaaS为核心构建平台层服务能力的变革。本文将给大家详细讲解 Docker 的 Server 端技术。
2492 0
容器日志管理:从 docker logs 到 ELK/EFK
监控和日志历来都是系统稳定运行和问题排查的关键,在微服务架构中,数量众多的容器以及快速变化的特性使得一套集中式的日志管理系统变成了生产环境中一个不可获取的部分。此次话题我们会集中在日志管理方面,本篇会介绍Docker自带的logs子命令以及其Logging driver,然后介绍一个流行的开源日志管理方案ELK/EFK。
2030 0
容器日志管理:从docker logs到ELK/EFK
监控和日志历来都是系统稳定运行和问题排查的关键,在微服务架构中,数量众多的容器以及快速变化的特性使得一套集中式的日志管理系统变成了生产环境中一个不可获取的部分。此次话题我们会集中在日志管理方面,本篇会介绍Docker自带的logs子命令以及其Logging driver,然后介绍一个流行的开源日志管理方案ELK/EFK。
2673 0
+关注
wsc449
python,c#,scala
文章
问答
文章排行榜
最热
最新
相关电子书
更多
我的Docker:Docker插件机制详解
立即下载
从Docker到容器服务
立即下载
Docker 镜像原理和最佳实践
立即下载