docker介绍以及安装-阿里云开发者社区

开发者社区> wsc449> 正文

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

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

相关文章
阿里云服务器怎么设置密码?怎么停机?怎么重启服务器?
如果在创建实例时没有设置密码,或者密码丢失,您可以在控制台上重新设置实例的登录密码。本文仅描述如何在 ECS 管理控制台上修改实例登录密码。
4123 0
Docker解析及轻量级PaaS平台演练(四)--Fig相关介绍
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq1010885678/article/details/46292401 本篇中将...
724 0
DotNet IOC Framework - Microsoft Unity介绍
一. 新建一个ASP.NET MVC4项目 二. 安装Microsoft Unity   1) 管理Nuget程序包     2)安装Unity3程序包     在你的App_Start文件夹里会多出来两个文件   三.
895 0
阿里云服务器端口号设置
阿里云服务器初级使用者可能面临的问题之一. 使用tomcat或者其他服务器软件设置端口号后,比如 一些不是默认的, mysql的 3306, mssql的1433,有时候打不开网页, 原因是没有在ecs安全组去设置这个端口号. 解决: 点击ecs下网络和安全下的安全组 在弹出的安全组中,如果没有就新建安全组,然后点击配置规则 最后如上图点击添加...或快速创建.   have fun!  将编程看作是一门艺术,而不单单是个技术。
4573 0
Docker应用容器引擎介绍与搭建
Docker相信大家都不默认,没有实践过的童鞋也应该听过他的大名,笔者最近挺长一段使用都在使用Docker解决各种问题,而在最近也吧Kubernetes的坑爬完实践了起来,那么从今天开始笔者会带来关于Docker容器化相关的博文,一同探索Docker为什么这么火热,我们怎么去实践使用它.
198 0
阿里云ECS云服务器初始化设置教程方法
阿里云ECS云服务器初始化是指将云服务器系统恢复到最初状态的过程,阿里云的服务器初始化是通过更换系统盘来实现的,是免费的,阿里云百科网分享服务器初始化教程: 服务器初始化教程方法 本文的服务器初始化是指将ECS云服务器系统恢复到最初状态,服务器中的数据也会被清空,所以初始化之前一定要先备份好。
3517 0
+关注
wsc449
python,c#,scala
198
文章
4
问答
文章排行榜
最热
最新
相关电子书
更多
文娱运维技术
立即下载
《SaaS模式云原生数据仓库应用场景实践》
立即下载
《看见新力量:二》电子书
立即下载