docker镜像的制做和容器的运行

               docker镜像的制做以及容器的运行mysql

前言:docker安装对Linux的内核要求3.8以上版本,能够经过uname -r查询linux内核另外一个要求必须运行在64位的操做系统上;如今的docker能够运行在windows系统和Linux系统实现跨平台。linux

介绍docker程序员

Docker的英文本意是“搬运工”,在程序员的世界里,Docker搬运的是集装箱(Container),集装箱里装的是任意类型的App,开发者经过Docker能够将App变成一种标准化的、可移植的、自管理的组件,能够在任何主流系统中开发、调试和运行。sql

 

说白了,docker是一种用了新颖方式实现的轻量级虚拟机,相似于VM,可是在原理和应用上和VM的差异仍是很大的.而且docker的专业叫法是应用容器(Application Container)docker

 

为啥要用容器?windows

应用容器是个啥样子呢,一个作好的应用容器长得就像一个装好了一组特定应用的虚拟机同样,好比我如今想用mysql,那我就找个装好了mysql的容器就能够了,而后运行起来,我就能使用mysql了。centos

 

为啥不能直接安装一个mysql?安装一个SQL Server也能够啊,但是有的时候根据每一个人电脑的不一样,在安装的时候可能会报出各类各样的错误,万一你的机器中毒了,你的电脑挂了,你全部的服务都须要从新安装.可是有了docker,或者说有了容器就不一样了,你就至关于有了一个能够运行起来的虚拟机,只要你能运行容器,mysql的配置就省了.并且若是你想换个电,直接把容器端过来就可使用容器里面的服务.bash

 

 

1:(安装docker服务器

安装docker有两种方式:app

(1)使用centos版本提供的docker,如今是docker1.13版本

(2)经过互联网docker的官方下载网站为http://www.hop5.in/yum/el6/hop5.repo最新版本为docker17版本,docker的最新版本和以前的版本跳度较大

在这里使用的是centos提供的docker

(3)docker17版本分为两种dockerCE:社区版dockerEE:企业版

2docker镜像:

注:容器的运行离不开镜像

镜像的存在方式分为两种:一种是本地镜像;另外一种是仓库镜像

查看镜像的命令:docker  p_w_picpaths

3:容器:

容器用来封装任意类型的app,将app变成标准化轻量级的应用程序。差容器的命令: docker  ps  -a

优势:部署和容易扩展;效率高,内核级虚拟化,简单来讲四个字:多快好省

4docker的结构:

C/s结构; cdocker daemon 服务端   sdocker client

 wKiom1kP5CixN5VeAABmNoLMZ4c327.png-wh_50

Docker daemon 通常在宿主主机后台运行。

Docker client以系统命令的形式存在,用户用docker命令来跟docker daemon 交互。

 

Docker 守护进程Docker daemon

如上图所示,Docker 守护进程运行在一台主机上。用户并不直接和守护进程进行交互,而是经过 Docker 客户端间接和其通讯。

Docker 客户端Docker client

Docker 客户端,其实是docker的二进制程序,是用户与 Docker 交互方式。它接收用户指令而且与背后的 Docker 守护进程通讯。

5:docker和传统的虚拟化技术对比:

wKiom1kP5EXQBKAIAAGK_vLRX7E871.png-wh_50 

Docker 在以下几个方面具备较大的优点。

更快速的交付和部署

对开发和运维(devop)人员来讲,最但愿的就是一次建立或配置,能够在任意地方正常运行。开发者可使用一个标准的镜像来构建一套开发容器,开发完成以后,运维人员能够直接使用这个容器来部署代码。 Docker 能够快速建立容器,快速迭代应用程序,并让整个过程全程可见,使团队中的其余成员更容易理解应用程序是如何建立和工做的。 Docker 容器很轻很快!容器的启动时间是秒级的,大量地节约开发、测试、部署的时间。

更高效的虚拟化

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

更轻松的迁移和扩展

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

更简单的管理

使用 Docker,只须要小小的修改,就能够替代以往大量的更新工做。全部的修改都以增量的方式被分发和更新,从而实现自动化而且高效的管理。

对比传统虚拟机总结

特性

容器

虚拟机

启动

秒级

分钟级

硬盘使用

通常为MB

通常为GB

性能

接近原生

弱于

系统支持量

单机支持上千个容器


建立镜像有两种方式:

(1)docker commit 制做

缺点:容易有黑盒操做;不便和用户之间共同分享

(2)dockerfile建立p_w_picpaths

首先自定义目录以后编写dockerfile文件

文件格式:

# 注释说明

FROM 基础镜像

MAINTAINER 做者

RUN 更新容器的指令

 :镜像最多为127层不然不会成功为了较少层,能够在更新容器的指令中执行多条指令使用&&符号连接

6:安装docker服务:

 

 

1.安装docker :yum -y install docker

wKiom1kP5F_zuAPYAABlXidLhq0506.png-wh_50 

2.启动docker systemctl enable docker

wKiom1kP5HKS3ooYAAAvw5I62dg671.png-wh_50 

3.导入基础镜像

wKioL1kP5IPBTJG7AAAk8KVcPHw121.png-wh_50 

方法一:

4.将基础镜像加入镜像仓库 docker load --input centos7.tar

wKiom1kP5JfRPQBSAAAb3MIQrY0492.png-wh_50 

5.将基础镜像运行在容器中 docker run -i -t docker.io/centos:latest /bin/bash  // 环境变量,能够不写linux默认是此变量环境

wKioL1kP5LeAxJ1kAAALt04gBqE119.png-wh_50 

6.在容器中做出修改更新容器: yum -y install openssh-clients

wKioL1kP5MzRnkCzAAAOKMm15QE804.png-wh_50 

7.退出容器后将修改后的容器作成镜像 docker -m 信息 -a 制做人  容器的ID号  新的镜像名称

wKiom1kP5N6TUVoYAABajwV9r6g471.png-wh_50 

方法二:

8.建立dockerfile文件 

wKioL1kP5PDQ38nJAAAX8euAj9g555.png-wh_50 

9.编写dockerfile文件注意文件格式

wKiom1kP5QWjoOIXAAAZIlgTZZM050.png-wh_50 

10.生成新的镜像docker build -t=新的进项名称:标签  . 或者绝对路径

wKiom1kP5RnD6K-tAABjCWReLWk596.png-wh_50 

wKioL1kP5SzQwAZ-AAAghh-pgs0109.png-wh_50 

 

11.导出镜像到本地文件 docker save -o 导出后的包.tar  镜像:标签

wKioL1kP5T-RyIfOAAAbF5xfEY8864.png-wh_50 

12.将本地文件载入镜像docker load --input .tar结尾的镜像

wKioL1kP5VGTF3EvAACNjfONm3c469.png-wh_50 

相关文章
相关标签/搜索