最近公司进一步去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. RPA 案例:银行综合对账系统权限更改中的难点解决

    需求内容 根据表格中给出的信息(提供了机构名称.机构代码.用户信息.具体操作等),选择系统管理 → 用户信息管理 → 用户维护,点击用户所在的机构,在机构中选择需调整的用户,进行相应的增删改操作. 关 ...

  2. 从零开始学 ASP.NET Core 与 EntityFramework Core 目录

    从零开始学 ASP.NET Core 与 EntityFramework Core 介绍 我是一个目录,它旨在帮助开发者循序渐进的了解 ASP.NET Core 和 Entity Framework ...

  3. PHPStorm设置等号对齐

    为了代码的美观,我们常常会把代码等号设置对齐,手动对齐的效率很低,PHPStrom提供了快捷键来一键对齐. 首先设置PHPStorm 设置完PHPStorm后,使用快捷键Command+Option+ ...

  4. tomcat9上传文件失败错误

    项目上线正常运行一段时间后,有一天突然所有的附件上传都出现了错误,查找项目本身的日志系统也一致没有跟踪到错误.经过几番折腾,在tomcat9-stdout.log日志中发现如下异常: ERROR or ...

  5. Java开发桌面程序学习(13)——Javafx多线程 下载功能

    普通使用 Task<Void> task = new Task<Void>() { @Override protected void succeeded() { super.s ...

  6. go-爬虫-百度贴吧(并发版)

    爬取百度贴吧的网页 非并发版 package main import ( "fmt" "io" "net/http" "os&qu ...

  7. python基础(16):内置函数(二)

    1. lamda匿名函数 为了解决⼀些简单的需求⽽设计的⼀句话函数 # 计算n的n次⽅ def func(n): return n**n print(func(10)) f = lambda n: n ...

  8. XML的互相序列化对象

    using System.Xml.Serialization; using System.IO; using System.Xml; namespace Common { public class X ...

  9. layui js 常用语句语法

    烂笔头: layui组件使用 注意layui的版本. 在head里需要引入css/js文件. 出现 form.verify,form.val is not a function的错误信息时,注意版本, ...

  10. [20191010]bash行计算器.txt

    [20191010]bash行计算器.txt --//写一个bash行计算器,为了避免冲突,函数命名为2个=,1个=感觉不是很好(心里上^_^).--//使用bc计算器,里面函数不能使用圆括号,使用中 ...