Docker入门系列(一):目标和安排
Docker入门系列(一)
这个系列的教程来源于docker的官方文档,此文档的目的在于一步一步学习docker的使用方法。
这一系列的教程有如下几篇文档:
- docker安装启动
- 构建第一个docker应用
- 让你的应用变为可扩展的服务
- 让你的服务跨越多台机器
- 增加一个可持久化的访问计数
- 将swarm部署到生产环境
Docker的价值在于,如何构建,传输以及运行你的应用程序。这是作为使用者最需要关注的方向。
准备工作
在正式开始之前,最好先了解Docker是什么,我们为什么需要Docker。
最好准备以下计算机基础知识:
- IP地址和端口
- 虚拟机
- 系统配置文件
- 代码依赖以及构建
系统资源,比如cpu使用率,内存大小等
容器的简单阐述
镜像(image)是一个轻量的、独立的、可执行的软件包。这个软件包包含了程序代码、运行环境、库文件、环境变量、以及配置文件等程序执行所需要的所有部分。
容器(container)是镜像的一个运行实例。在默认情况下,容器和宿主机是完全隔离的,也可以配置访问宿主机的文件系统和网络端口。
容器在本地运行应用程序基于宿主机的内核(kernel)。和虚拟机相比,容器拥有更好的性能。容器能够直接访问机器资源,容器运行在独立的进程中,并不会比可执行程序消耗更多的内存。
容器 VS 虚拟机
虚拟机
虚拟机运行在访客系统之上,这是一种资源竞争型的架构,会造成磁盘状态和应用在OS设置、系统安装依赖、系统安全层面相互干扰,还会有其他的easy-to-lose, hard-to-replicate的问题。
容器
容器可以共享内核,容器内部需要的配置,都会安装在容器的内部,各个容器之间是相互隔离的。因此,容器包含它运行所需要的所有环境,能真正的实现runs anywhere。安装docker
安装成功之后,运行hello-world
$ docker run hello-world
Hello from Docker!
This message shows that your installation appears to be working correctly.To generate this message, Docker took the following steps:
...(snipped)...
检查docker版本
$ docker --version
Docker version 17.06.2-ce, build cec0b72看到如下输出信息,说明已经安装成功,可以享受docker之旅了。
总结
服务伸缩的最小单元是独立的、可移植的意义重大,它意味着CI/CD能够更新一个分布式应用的任何一部分,系统依赖不在是问题,并且资源使用率也大大提升。服务编排将紧紧围绕可执行程序,而非VM主机。
这将是一个巨大的进步,首先让我们学会如何快速行走吧。
Docker入门系列(一):目标和安排的更多相关文章
- Docker入门系列之三:如何将dockerfile制作好的镜像发布到Docker hub上
这个系列的前两篇文章,我们已经把我们的应用成功地在Docker里通过nginx运行了起来,并且用dockerfile里制作好了一个镜像. Docker入门系列之一:在一个Docker容器里运行指定的w ...
- Docker入门系列1:简介
可以实现快速部署. 比如一台 16 核 32G 内存的虚拟机上,需要跑 500+ 个用户的应用(每个应用的功能可以认为是一个网站 + 一系列的 RESTful API),有两个事情很重要: 资源隔离: ...
- Docker入门系列之五:15个 Docker 命令
在这篇文章中,我们将学习15个Dockers CLI命令.如果你还不了解Docker,请查看这个系列的其他部分进行学习,Docker概念,生态系统,Dockerfile,Docker镜像. Docke ...
- Docker入门系列3:使用
入门 首先强烈建议玩一遍官方的入门教程,Interactive commandline tutorial,下面是答案: 查看版本:docker version 搜索Image:docker searc ...
- Docker入门系列之一:什么是Docker?
原文作者:Jeff Hale 原文地址:https://towardsdatascience.com/learn-enough-docker-to-be-useful-b7ba70caeb4b 翻译: ...
- Docker入门系列之二:使用dockerfile制作包含指定web应用的镜像
实现题目描述的这个需求有很多种办法,作为入门,让我们从最简单的办法开始. 首先使用命令docker ps确保当前没有正在运行的Docker实例. 运行命令docker run -it nginx: 然 ...
- Docker入门系列之一:在一个Docker容器里运行指定的web应用
实现题目描述的这个需求有很多种办法,作为入门,让我们从最简单的办法开始. 首先使用命令docker ps确保当前没有正在运行的Docker实例. 运行命令docker run -it nginx: 然 ...
- Docker入门系列8
commit docker commit -m "Added json gem" -a "Docker Newbee" 0b2616b0e5a8 ouruser ...
- Docker入门系列2 安装
可以从 Docker 社区直接下载可用的模版或镜像. Docker容器的启动可以在秒级实现,这相比传统的虚拟机方式要快得多. 其次,Docker对系统资源的利用率很高,一台主机上可以同时运行数千个Do ...
随机推荐
- 【★】IT界8大恐怖预言
IT界的8大恐怖预言 本文字数:3276 建议阅读时间:你开心就好 第三次科技革命已经进入白热化阶段---信息技术革命作为其中最主要的一环已经奠定了其基本格局和趋势.OK大势已定,根据目前的形势,小编 ...
- MongoDB学习之路(三)
数据库 一个MongoDB可以建立多个数据库. MongoDB的默认数据库为"db",该数据库存储在data目录中. MongoDB的单个实例可以容纳多个独立的数据库,每一个都有自 ...
- CentOS 6.5安装部署Zabbix监控系统
CentOS 6.5安装部署Zabbix监控系统 先说一点废话,我没有用centos7做实验,讲真,centos 7我也不常用,喜欢新版本的同学其实可以尝试下,注意一点的就是centos 6.5只支持 ...
- 团队作业10——项目复审与事后分析(Beta阶段)
一.Beta阶段项目复审 http://www.cnblogs.com/womenshuodedoudui/p/7001208.html 二.事后诸葛分析 http://www.cnblogs.com ...
- 联想G50-70安装SSD及WIN10教程
借着双11的东风,果断入手SSD120G和4G内存条1枚.经过近一周的安装与试运行,笔者实现了SSD+HDD双硬盘+WIN10系统.目前运行体验非常好,开机时间9秒,软件运行也非常流畅.在折腾的过程中 ...
- 201521123024《Java程序设计》第7周学习总结
1. 本周学习总结 2. 书面作业 1.ArrayList代码分析 1.1 解释ArrayList的contains源代码 public boolean contains(Object o) { re ...
- 201521123035《Java程序设计》第十三周学习总结
1. 本周学习总结 以你喜欢的方式(思维导图.OneNote或其他)归纳总结多网络相关内容. 2. 书面作业 1. 网络基础 1.1 比较ping www.baidu.com与ping cec.jmu ...
- 201521123104《JAVA程序设计》第9周学习总结
1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结异常相关内容. 2. 书面作业 1. 常用异常 题目5-1 1.1 截图你的提交结果(出现学号) 1.2 自己以前编写的代码中经常出 ...
- Sping IOC
这2天学习了Spring的AOP 其中包括注解式和非注解式的配置 个人感觉注解式的配置非常好用.具体内容如下: 1. AOP 面向切面编程 个人理解就是在一个写好的方法上增加一些新的功能 ...
- html tip实现
一.介绍before/after CSS中的before和after伪类选择器早在CSS2时就被引入,改属性被所有主流浏览器所支持了.before和after顾名思义,分别指的是伪元素在元素前/后添加 ...