最近公司进一步去windows,走向 linux+云化。

原来的一大坨windows虚拟机服务器都要转向linux, 既然走向linux的话,那么docker肯定是要涉足的。

故学习了docker入门的相关内容。

主要内容如下附件中的PDF进行了学习,---当然,也可以对照docker的官方文档一步步深入学习。

https://blog.docker.com/2016/09/build-your-first-docker-windows-server-container/

2013年发布至今, Docker 一直广受瞩目,被认为可能会改变软件行业。
但是,许多人并不清楚 Docker 到底是什么,要解决什么问题,好处又在哪里?今天就来详
细解释,帮助大家理解它,还带有简单易懂的实例,教你如何将它用于日常开发。
Docker简介
 Docker是一个开源的容器引擎,它有助于更快地交付应用。 Docker可将应用程序和基础
设施层隔离,并且能将基础设施当作程序一样进行管理。使用 Docker可更快地打包、测试
以及部署应用程序,并可以缩短从编写到部署运行代码的周期。
Docker的优点如下:
1、简化程序
Docker 让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何
流行的 Linux 机器上,便可以实现虚拟化。Docker改变了虚拟化的方式,使开发者可以直
接将自己的成果放入Docker中进行管理。方便快捷已经是 Docker的最大优势,过去需要
用数天乃至数周的 任务,在Docker容器的处理下,只需要数秒就能完成。
2、避免选择恐惧症
如果你有选择恐惧症,还是资深患者。Docker 帮你 打包你的纠结!比如 Docker 镜像;
Docker 镜像中包含了运行环境和配置,所以 Docker 可以简化部署多种应用实例工作。比
如 Web 应用、后台应用、数据库应用、大数据应用比如 Hadoop 集群、消息队列等等都
可以打包成一个镜像部署。
3、节省开支
一方面,云计算时代到来,使开发者不必为了追求效果而配置高额的硬件,Docker 改变了
高性能必然高价格的思维定势。Docker 与云的结合,让云空间得到更充分的利用。不仅解
决了硬件管理的问题,也改变了虚拟化的方式。
Docker的架构

Docker daemon( Docker守护进程)
Docker daemon是一个运行在宿主机( DOCKER-HOST)的后台进程。可通过
Docker客户端与之通信。
Client( Docker客户端)
Docker客户端是 Docker的用户界面,它可以接受用户命令和配置标识,并与 Docker
daemon通信。图中, docker build等都是 Docker的相关命令。
Images( Docker镜像)
Docker镜像是一个只读模板,它包含创建 Docker容器的说明。它和系统安装光盘有
点像,使用系统安装光盘可以安装系统,同理,使用Docker镜像可以运行 Docker镜
像中的程序。
Container(容器)
容器是镜像的可运行实例。镜像和容器的关系有点类似于面向对象中,类和对象的关
系。可通过 Docker API或者 CLI命令来启停、移动、删除容器。
Registry
Docker Registry是一个集中存储与分发镜像的服务。构建完 Docker镜像后,就可在
当前宿主机上运行。但如果想要在其他机器上运行这个镜像,就需要手动复制。此时可
借助 Docker Registry来避免镜像的手动复制。
一个 Docker Registry可包含多个 Docker仓库,每个仓库可包含多个镜像标签,每个
标签对应一个 Docker镜像。这跟 Maven的仓库有点类似,如果把 Docker Registry
比作 Maven仓库的话,那么 Docker仓库就可理解为某jar包的路径,而镜像标签则可
理解为jar包的版本号。
Docker 的安装
Docker 是一个开源的商业产品,有两个版本:社区版(Community Edition,缩写为
CE)和企业版(Enterprise Edition,缩写为 EE)。企业版包含了一些收费服务,个人开发
者一般用不到。下面的介绍都针对社区版。
Docker CE 的安装请参考官方文档。

--------------------------------------------

其中一个练习的小曲折就是第一次写Dockerfile ,直接复制的 pdf中的命令。然后一直报错。

将上面两句,复制到Dockerfile。 然后运行docker build ,结果一直报错:

/bin/sh: : cannot create /usr/share/nginx/html/index.html: Directory nonexistent

----最后找到结果是空格引起的, 复制进去的空格,和手动打的空格是不一样的,重新敲了一遍空格,就好了。初步判断是字符集的问题。

希望可以帮到相同问题的人。

--------------------------------------------

学习资料如下:
docker入门与部署微服务

感谢,图灵学院,诸葛老师提供的公开课资料

docker入门与部署微服务--学习笔记的更多相关文章

  1. SpringCloud微服务学习笔记

    SpringCloud微服务学习笔记 项目地址: https://github.com/taoweidong/Micro-service-learning 单体架构(Monolithic架构) Mon ...

  2. 微服务学习笔记(2)——使用Consul 实现 MagicOnion(GRpc) 服务注册和发现

    原文:微服务学习笔记(2)--使用Consul 实现 MagicOnion(GRpc) 服务注册和发现 1.下载打开Consul 笔者是windows下面开发的(也可以使用Docker). 官网下载w ...

  3. Spring Cloud微服务学习笔记

    Spring Cloud微服务学习笔记 SOA->Dubbo 微服务架构->Spring Cloud提供了一个一站式的微服务解决方案 第一部分 微服务架构 1 互联网应用架构发展 那些迫使 ...

  4. 微服务学习笔记(1)——使用MagicOnion实现gRPC

    原文:微服务学习笔记(1)--使用MagicOnion实现gRPC 1.什么是gRPC 官方文档:https://grpc.io/docs/guides/index.html 2.什么是MagicOn ...

  5. 微服务学习笔记一:Spring Cloud简介

    1.Spring Cloud是一个工具集:Spring   Cloud是在Spring    Boot的基础上构建的,用于简化分布式系统构建的工具集:使架构师在创建和发布微服务时极为便捷和有效. Sp ...

  6. Docker 入门指南——部署常用服务示例

    MongoDB FROM centos:centos7 MAINTAINER The CentOS Project <cloud-ops@centos.org> RUN yum -y up ...

  7. 微服务学习笔记——Spring Boot特性

    1. 创建独立的Spring应用程序 2. 嵌入的Tomcat,无需部署WAR文件 3. 简化Maven配置 4. 自动配置Spring 5. 提供生产就绪型功能,如指标,健康检查和外部配置 6. 开 ...

  8. network_node:host解决Docker容器化部署微服务出现的Dobbo通信问题

    在Docker中,有时候出现 ports:   - 20880:20880 Dobbo通信出现问题. 此时应该改成 network_node:host 注释 ports!

  9. 微服务学习笔记二:Eureka服务注册发现

    Eureka服务注册发现 服务发现:云端负载均衡,一个基于 REST 的服务,用于定位服务,以实现云端的负载均衡和中间层服务器的故障转移. 1. Service Discovery: Eureka S ...

随机推荐

  1. Jenkins—Master/Slave模式

    Jenkins可部署在windows或者linux平台上,项目系统的用户多数为windows系统.如果Jenkins部署在linux上,而自动化任务要在windows平台执行,那么就需要使用Jenki ...

  2. 纯手打AJAX,还有一个对象转查询字符串的小方法obj=>url

    function json2url(json){ var arr=[]; for(var name in json){ arr.push(name+'='+json[name]); } return ...

  3. EF中获取当前上下文的表名

    EF在处理并发上并不是很好,很多时候我们需要手动写sql操作数据库.但是在基类中我们如何获取当前服务仓储操作的表呢? 使用正则是其中一种解决办法 Repository.Table是一条查询语句,通过t ...

  4. 如何利用python爬取网易新闻

    前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 作者: LSGOGroup PS:如有需要Python学习资料的小伙伴可以 ...

  5. CSS animation 属性

    定义和用法 animation属性是下列属性的一个缩写属性: animation-name animation-duration animation-timing-function animation ...

  6. Flask(Jinja2) 服务端模板注入漏洞(SSTI)

    flask Flask 是一个 web 框架.也就是说 Flask 为你提供工具,库和技术来允许你构建一个 web 应用程序.这个 wdb 应用程序可以使一些 web 页面.博客.wiki.基于 we ...

  7. setValueForKeysWithDictionary的底层实现

    setValueForKeysWithDictionary这个方法会遍历字典, 然后调用setValue:forKeyPath: 根据字符串,进行属性匹配: (1)根据key,到当前模型当中,去找有没 ...

  8. 本地Yum源配置

    一.网络源 yum list 软件名称 查找源里的软件,可以使用通配符 二.配置源 源配置文件路径 /etc/yum.repos.d/ 配置项 [名称] 源标识(不能和其他的源重复) name=名称 ...

  9. MIPI CSI2学习(一):说一说MIPI CSI2

    1. MIPI CSI2简介 MIPI联盟是一个开放的会员制组织.2003年7月,由美国德州仪器(TI).意法半导体(ST).英国ARM和芬兰诺基亚(Nokia)4家公司共同成立.MIPI联盟旨在推进 ...

  10. [视频教程] 最新版swoole安装和TASKS功能测试

    今天我们来安装和测试一下php的多并发高性能网络通信扩展,这个扩展是使用C语音开发的,加载到PHP以后,在PHP的层面上实现了多并发异步通信,模拟了go语音的很多特性,极大的拓宽了PHP的应用场景. ...