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 ...
随机推荐
- CSS3动画效果之animation
先解决上一篇的遗留问题. div { width: 300px; height: 200px; background-color: red; -webkit-animation: test1 2s; ...
- PHP(函数)
<script> // 获得日 var time = new Date(); var x = time.getDate(); document.write(x+"日," ...
- 大数的减法函数--c语言
代码展示: http://paste.ubuntu.com/23693598/ #include<stdio.h> #include<stdlib.h> #include& ...
- nodejs本地服务器自动重启
在我们开发node 应用的时候,一但你的应用已经启动了,这个时候如果你修改了服务端的文件,那么要是这个修改起作用,你必须手动停止服务然后再重新启动,这在开发过程中无疑是很烦人的一件事,最好是有一个能够 ...
- 九度OJ 1017 还是畅通工程
#include <iostream> #include <string.h> #include <sstream> #include <math.h> ...
- 201521123006 《java程序设计》 第12周学习总结
1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结多流与文件相关内容. 2. 书面作业 将Student对象(属性:int id, String name,int age,doubl ...
- 201521123035《Java程序设计》第十一周作业
1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结多线程相关内容. 本周对多线程的冲突是从多线程的冲突开始讲起,从而提出互斥共享与互斥访问.其中,互斥访问提到了synchronize ...
- Java课程设计 201521123078
计时器 掌握java图形界面操作以及多线程技术. 1.Mythread1 写一个类Mythread1实现Runnable,当需要开一个线程时就是用这个类.其中的run()通过标记flag和循环实现时间 ...
- scrapy爬虫框架
downloader:负责下载html页面 spider:负责爬取页面内容,我们需要自己写爬取规则 srapy提供了selector,获取的方式有xpath,css,正则,extract item容 ...
- Spring写第一个应用程序
ref:http://www.importnew.com/13246.html 让我们用Spring来写第一个应用程序吧. 完成这一章要求: 熟悉Java语言 设置好Spring的环境 熟悉简单的Ec ...