docker 初体验 之 阶段学习总结

docker 学习总结

1、什么是docker

        Docker是一个开源的引擎,可以轻松的为任何应用创建一个轻量级的、可移植的、自给自足的容器。开发者在笔记本上编译测试通过的容器可以批量地在生产环境中部署。

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

     docker常用场景

          web应用的自动化打包和发布;

          自动化测试和持续集成、发布;

          在服务型环境中部署和调整数据库或其他的后台应用;  

2、docker和虚拟机的不同之处

        Docker 扩展了 Linux 容器,利用了 LXC、cgroups 和 Linux 自己的内核,通过一个高层次的 API 为进程单独提供了一个轻量级的虚拟环境。和传统的虚拟机不同的是,一个Docker容器并不包含一个单独的操作系统,而是基于已有的基础设施中操作系统提供的功能来运行的。Docker会像一个可移植的容器引擎那样工作。它把应用程序及所有程序的依赖环境打包到一个虚拟容器中。docker容器是在操作系统层面上实现虚拟化,直接复用本地主机的操作系统,而传统方式则是在硬件层面实现。

        所以docker相比虚拟机有以下优势:启动速度快(磁盘占用空间小,采用了分层技术,构建的镜像大小,只有自身的大小)、资源利用率高(docker容器共享的宿主机的内核,没有操作的进程消耗)、性能开销小,大大地降低了环境配置管理的复杂度,提高了产品的应用部署效率,可以做到“一次配置,到处运行”。

3、docker 操作结构

        Docker是一个C/S架构,分为:

        Docker Client: Docker的客户端

        Docker Server: Docker daemon的主要组成部分,接收用户通过Docker Client 发送的请求,并按照相应的路由规则实现路由分发

        Docker Registry: Registry是Docker镜像的中央存储仓库(pull/push)通过Docker pull命令可以把Registry上的docker镜像,下载到服务器本地,通过docker push命令可以把服务器本地的docker镜像,上传到Registry上

4、docker基本概念

        Dockerfile --用户使用 Dockerfile 可以创建自定义的镜像

        镜像(Image)--Docker 镜像就是一个只读的模板,用来创建 Docker 容器

        容器(Container)--Docker 利用容器来运行应用,容器是从镜像创建的运行实例。它可以被启动、开始、停止、删除。每个容器都是相互隔离的、保证安全的平台。容器可看做一个简易版的 Linux 环境(包括用户权限、进程空间、用户空间和网络空间等)和运行在其中的应用程序。仓库(Repository)--仓库是集中存放镜像文件的场所,概念和git类似。

        Dockerfile 是软件的原材料,Docker 镜像是软件的交付品,而 Docker 容器则可以认为是软件的运行态。从应用软件的角度来看,

        Dockerfile、Docker 镜像与 Docker 容器分别代表软件的三个不同阶段,Dockerfile 面向开发,Docker 镜像成为交付标准,

        Docker 容器则涉及部署与运维,三者缺一不可,合力充当 Docker 体系的基石。简单来讲,Dockerfile构建出Docker镜像,通过Docker镜像运行Docker容器。

5、docker底层实现

        1、namespace(命名空间),是属于linux内核的一个强大的特性,docker使用该特性保证每个docker容器都有自己单独的名字空间,

运行在其中的应用都像是在独立的操作系统中运行一样。名字空间保证了容器之间彼此互不影响。

          包括pid 命名空间(隔离不同用户的进程)、net 命名空间(隔离各容器的网络配置)、ipc 命名空间(隔离各容器的进程交互)

mnt 命名空间(隔离文件目录结构)、user 命名空间(保证每个容器可以有不同的用户和组 id)

         2、cgroups(控制组),是 Linux 内核的一个特性,主要用来对共享资源进行隔离、限制、审计等。

docker利用linux的cgroups控制分配到各容器的资源,避免当多个容器同时运行时的对系统资源的竞争。

         3、联合文件系统,是一种分层、轻量级并且高性能的文件系统,它支持 对文件系统的修改作为一次提交来一层层的叠加,

同时可以将不同目录挂载到同一个虚拟文件系统下。联合文件系统是 Docker 镜像的基础。镜像可以通过分层来进行继承,基于基础镜像(没有父镜像),可以制作各种具体的应用镜像。

另外,不同 Docker 容器就可以共享一些基础的文件系统层,同时再加上自己独有的改动层,大大提高了存储的效率。

docker采用联合文件系统为每一个成员目录设定只读、读写和写出权限,同时利用分层概念,

对只读权限的分支可以逻辑上进行增量地修改(不影响只读部分的)。

          4、网络实现,docker利用了 Linux 上的网络名字空间和虚拟网络设备来实现其网络结构。Docker 中的网络接口默认都是虚拟的接口。

分为四种网络模式:

            ①、bridge模式,是docker的默认网络模式。通过在主机上创建一个名为docker0的虚拟网桥,此主机上启动的Docker容器会连接到这个虚拟网桥上。虚拟网桥的工作方式和物理交换机类似,这样主机上的所有容器就通过交换机连在了一个二层网络中。

            ②、Host模式,容器将不会获得一个独立的网络命名空间,而是和宿主机共用一个网络命名空间。容器将不会虚拟出自己的网卡,配置自己的IP等,而是使用宿主机的IP和端口。但是,容器的其他方面,如文件系统、进程列表等还是和宿主机隔离的。

          ③、Container模式,指定新创建的容器和已经存在的一个容器共享一个网络命名空间,而不是和宿主机共享。新创建的容器不会创建自己的网卡,配置自己的 IP,而是和一个指定的容器共享 IP、端口范围等。同样,两个容器除了网络方面,其他的如文件系统、进程列表等还是隔离的。两个容器的进程可以通过 lo 网卡设备通信。

         ④、None模式,Docker容器拥有自己的网络命名空间,但是,并不为Docker容器进行任何网络配置。也就是说,这个Docker容器没有网卡、IP、路由等信息。需要我们自己为Docker容器添加网卡、配置IP等

6、常用命令

docker version--查看docker版本信息

docker info  --查看docker环境信息

docker run    --运行镜像得到容器实例

docker images --查看镜像信息

docker ps    --查看容器信息

docker stop  --停止容器

docker exec  --进入一个后台运行的容器

docke restart --重启容器

docker pull/push--下载/上传docker镜像

docker rm    --删除容器

...

    如:运行一个tomcat镜像,并通过宿主机58080端口对外公开tomcat应用,同时,将宿主机的/root/webapps/和/root/logs/目录挂载到容器中,

可用于便捷操作tomcat应用和监控tomcat日志文件

      docker run -d -p 58080:8080 -v /root/webapps/:/opt/tomcat/webapps/

              -v /root/logs/:/opt/tomcat/logs --name cat_1 superzhan/mytomcat /root/run.sh

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

推荐阅读更多精彩内容

  • Docker — 云时代的程序分发方式 要说最近一年云计算业界有什么大事件?Google Compute Engi...
    ahohoho阅读 15,418评论 15 147
  • 转载自 http://blog.opskumu.com/docker.html 一、Docker 简介 Docke...
    极客圈阅读 10,404评论 0 120
  • 0. 前言 docker是什么?docker是用GO语言开发的应用容器引擎,基于容器化,沙箱机制的应用部署技术。可...
    sessionboy阅读 3,795评论 2 49
  • 洗漱完毕已近凌晨,蹑手蹑脚从室友的门口走过,却发现他还醒着,习惯早睡的她正捧着手机打哈欠,却始终不肯放下睡觉。 室...
    亚里士多德提灯阅读 1,167评论 0 1
  • 老婆,你不觉得老公我的工作其实就是在伺候领导 ,伺候人?伺候人你知道最担心的是什么? 最担心的就是做不对事、说不对...
    三石生阅读 201评论 0 0