docker 入门

docker这几年越来越热,大家肯定都听说过, 今天就来聊下docker到底是啥,docker为什么能这么流行,它和之前的虚拟化技术有何不同,以及能给我们带来什么帮助。

一 什么是Docker

1. 基于Go语言的开源容器虚拟化平台

- Docker 从 17.03之后分为 CE(Community Edition) 和 EE(Enterprise Edition)

-从1.13.1飞跃到17, 17.03可以看做1.13.1的Bug修复版

- CentOs 6.x :目前配套安装的docker版本为1.7

2. 基于Linux容器技术(LXC)

- 命名空间:用于隔离:进程,网络,IPC,挂载,UTS,用户

- 控制组:资源配额和度量。

- 联合文件系统:轻量级、高性能的分层文件系统

- Linux网络虚拟化:虚拟网络设备(veth pair)

3. 口号:Build, Ship and Run Any App, Anywhere

一次构建,到处运行,有些类似于当年java的口号。

二 Docker为什么能流行

Docker's success is more the result of being in the right place at the right time for a trend that's much bigger than Docker.

核心:通过容器来打包应用,解耦了应用和运行平台,实现了应用的快速分发和部署——Docker第一次为应用的开发、运行和部署提供了”一站式“的实用解决方案。

DevOps的梦想:只需一次创建或配置,之后应用可以在任何地方,任意时间正常运行。Docker是实现这一梦想的瑞士军刀:

- 更快速的交付和部署:环境标准统一

- 更高效的资源利用: 内核级的轻量虚拟化

- 更方便的迁移和扩展:目前各种运行平台都支持

- 更简单的分发管理:Dockfile,类Git机制,存储复用,增量更新

Docker VS 传统虚拟机

三 安装Docker

Docker requires a 64-bit installation regardless of your CentOS version. Also, your kernel must be 3.10 at minimum. CentOS 7 runs the 3.10 kernel, 6.5 does not. We make an exception for CentOS 6.5.To run Docker on CentOS-6.5 or later, you need kernel 2.6.32-431 or higher.

Centos 6.x

1. 添加yum源

[xiaoju@kvm96061 ~]$ sudo tee /etc/yum.repos.d/docker.repo <<-'EOF'

[dockerrepo]

name=Docker Repository

baseurl=https://yum.dockerproject.org/repo/main/centos/$releasever/

enabled=1

gpgcheck=1

gpgkey=https://yum.dockerproject.org/gpg

EOF

2. 更新yum源缓存: sudo yum update

3. 安装:sudo yum install -y docker-engine

四 Docker 核心概念和架构

三大核心概念:

1. 镜像image:只读模板,由若干层layer组成。

2. 容器Container:从镜像创建的应用运行实例,一个轻量级沙盒,启动时在最上层创建了一个可写层。

3. 仓库Repository:类似git的project,保存同一类镜像文件,分为Public & Private。

VS 仓库注册服务器(Registry,类似于git server,最著名的是Docker Hub)

五 Docker基础用法

1.  exported-imported VS saved-loaded

导出后再导入(exported-imported)的镜像会丢失所有的历史,而保存后再加载(saved-loaded)的镜像没有丢失历史和层(layer)。这意味着使用导出后再导入的方式,你将无法回滚到之前的层(layer),同时,使用保存后再加载的方式持久化整个镜像,就可以做到层回滚(可以执行docker tag来回滚之前的层)

2. docker commit

我们运行的容器可能在镜像的基础上做了一些修改,有时候我们希望保存起来,封装成一个更新的镜像

docker自己提供的有commit功能

我们以centos为例,现在我们要在一个裸的centos上面安装vim编辑器,并且把这个功能保存下来,封装成一个能执行vim命令的centos镜像

拉去最新centos镜像:docker pull centos

进入镜像内部: docker run -it centos /bin/bash     备注:/bin/bash不要忘了

[root@202 ~]# docker run -it centos /bin/bash

[root@afcaf46e8305 /]#

afcaf46e8305是产生的容器ID,前面运行的时候不要-d后台运行了,不然会进不去容器内部的

[root@afcaf46e8305 /]# yum update

[root@afcaf46e8305 /]# yum install -y vim

安装完了后:exit退出容器

然后把容器打包成镜像:

root@202 ~]# docker commit afcaf46e8305 centos-vim

完成后docker images查看镜像就会发现centos-vim这个镜像了

我们再用刚刚的方法进去centos-vim这个镜像,

[root@7f2d42f3e0a3 /]# vim --version

就可以看到vim的信息了

Demo:

docker run mycentos /bin/echo "hello"

docker run -it --name demo  /bin/sh, docker top,docker attach

六 Dockerfile

一行行命令语句组成,支持 #注释

dockerfile分为四部分:基础镜像信息,维护者信息,镜像操作命令和容器启动时执行命令。

创建镜像:docker build

.dockerignore 忽略不需要的文件和目录

TIPS:

==- 精简镜像用途

- 正确使用版本号

- 减少镜像层数(尽量合并指令)

七 Docker compose (require engine>=1.10.0)

Compose是Docker的服务编排工具,主要用来构建基于Docker的复杂应用,Compose

允许用户通过一个单独的模板配置文件docker-compose.yml来定义一组相关联的应用容器为一个项目(project),非常适合组合使用多个容器进行开发的场景。

例子:

`version:'2'services:web:image:wordpress:latestlinks:-

dbports:-"8002:80"environment:WORDPRESS_DB_HOST:db:3306WORDPRESS_DB_PASSWORD:123456db:image:mysqlenvironment:-

MYSQL_ROOT_PASSWORD=123456`

启动项目:docker-compose up

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,542评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,596评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 158,021评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,682评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,792评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,985评论 1 291
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,107评论 3 410
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,845评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,299评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,612评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,747评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,441评论 4 333
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,072评论 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,828评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,069评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,545评论 2 362
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,658评论 2 350

推荐阅读更多精彩内容

  • 有关docker的介绍啊,为什么 要使用docker啊这些就不说了,因为当你点开这篇作文的时候,你自己心里已经有了...
    叶同学阅读 8,209评论 6 15
  • 1. 简介 Docker整个体系类似于手机系统,应用与主机、应用之间都是相互隔离,采用沙盒模式运行,一键式安装和卸...
    保持微笑_Ivan阅读 815评论 0 0
  • 短短半年内 开始分裂 多不对 没关系 你不用给我机会 我就是 剩这么一点点倔 称得上 我的优点 你说谁也不愿跟这样...
    qtpifan阅读 218评论 0 0
  • 应该已经立秋过了, 天气凉了不少, 还是习惯性的开空调, 也习惯性的想到爸爸, 明天是他的生日, 阴阳两隔, 想明...
    有童年没青春阅读 182评论 0 0
  • 1.安装HomeBrew/usr/bin/ruby -e "$(curl -fsSLL https://raw.g...
    iceIC阅读 791评论 1 0