一.docker介绍及使用

1.docker简介

(1)Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器或Windows 机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。

(2)使用go语言编写,在Linux容器基础上进行的封装。

(3)优点:

a.实现快速部署服务或应用并启动(尤其针对微服务集群式部署或拓展场景)。

b.实现虚拟化及完整的资源隔离(针对高配服务器可以实现虚拟化隔离部署,类似于虚拟机,同一台服务器上部署多个相同或不同的服务)。

c.一次编写,多处运行(限制条件:Docker是基于Linux 64bit的,无法在32bit的linux/Windows/unix环境下使用)。

2.docker使用场景

开箱即用、快速部署、可移植性强、环境隔离

(1)提供一次性的完整环境(例如安装MySQL,需要安装其他依赖库,如果使用docker则可以通过镜像直接运行启动)。

(2)快速动态扩容(使用docker将应用制作成镜像,实现快速部署并启动)。

(3)可以在一台机器上模拟出多个微服务并启动应用(组建微服务架构)。

(4)实现资源隔离和共享。

3.docker核心概念

仓库—>镜像—>容器

(1)仓库(registeries):用来保存镜像,有公有和私有仓库,好比Maven的中央仓库和本地私服。

镜像仓库: 配置国内镜像仓库:https://blog.csdn.net/zzy1078689276/article/details/77371782

仓库分为公共镜像仓库和私有镜像仓库两种,其中公共镜像仓库分为官方镜像仓库和私有镜像仓库。

公共镜像仓库:
官方:https://hub.docker.com/,基于各个软件开发或者有软件提供商开发的
非官方:其他组织或者公司开发的镜像,供大家免费试用

私有镜像仓库:
用于存放公司内部的镜像,不提供给外部试用;

SpringCloud 开发了一个支付系统 -》做成一个镜像 (操作系统+软件运行环境+用户程序)

(2)镜像(images):容器运行时的只读模板,包括操作系统+软件运行环境+用户程序;类似于Java中的class类。

(3)容器(containers):根据镜像生成容器,包含了某个应用运行所需要的全部环境,类似于Java中new的具体实例。

4.docker安装及常用操作命令

(1)安装:

Linux云服务器centOS安装docker(阿里云ECS服务)

lsb_release -a  此命令用来显示服务器版版本等相关信息(lsb是Linux Standard Base的缩写)

阿里云安装docker手册:
https://help.aliyun.com/document_detail/51853.html?spm=a2c4g.11186623.6.820.RaToNY

常见问题:
https://blog.csdn.net/daluguishou/article/details/52080250

(2)常用操作命令:

a.搜索镜像:docker search xxx 镜像名称

b.列出当前系统已存在的镜像:docker images

c.拉取或获取镜像:docker pull xxx   (xxx是具体某个镜像名称(格式 REPOSITORY:TAG);REPOSITORY:表示镜像的仓库源,TAG:镜像的标签)

d.运行容器:

docker run -d --name "xdclass_mq" -p 5672:5672 -p 15672:15672 rabbitmq:management

docker run 运行一个容器  (首先会从本地寻找镜像,如果有则直接启动,没有的话,从镜像仓库拉起,再启动)

-d 后台运行

--name 给运行的容器起别名(此命令可以不加,视个人使用情况而定)

-p 端口映射

rabbitmq:management  (格式 REPOSITORY:TAG),如果不指定tag,默认使用最新的

e.列举当前已运行的容器:docker ps

f.检查容器内部信息:docker inspect 容器名称

g.删除镜像:docker rmi IMAGE_NAME (如果有容器使用该镜像是无法直接删除的,强制移除镜像不管是否有容器使用该镜像 增加 -f 参数)

h.停止某个容器:docker stop 容器名称

i.启动某个容器:docker start 容器名称

j.移除(删除)某个容器: docker rm 容器名称/容器ID (容器必须是停止状态,如果要强制删除增加 -f 参数)

参考文档:https://blog.csdn.net/permike/article/details/51879578

5、Docker部署Nginx服务器实战

1、获取镜像
docker run (首先会从本地找镜像,如果有则直接启动,没有的话,从镜像仓库拉起,再启动)

docker search nignx
2、列举
docker images
3、拉取
docker pull nignx
3、启动
docker run -d --name "nginx1" -p 8088:80 nginx
docker run -d --name "nginx2" -p 8089:80 nginx
docker run -d --name "nginx3" -p 8090:80 nginx
4、访问
如果是阿里云服务,记得配置安全组,相当于一个防火墙

6、使用阿里云搭建自己的镜像仓库

1、阿里云镜像仓库:https://dev.aliyun.com/search.html

点击管理控制台-》初次使用会提示开通,然后设置密码(建议此处用自己的账号登录后访问此文档)

2、使用阿里云私有镜像仓库
1)登录: docker login --username=794666918@qq.com registry.cn-shenzhen.aliyuncs.com

2) 推送本地镜像:
docker tag [ImageId] registry.cn-shenzhen.aliyuncs.com/xdclass/xdclass_images:[镜像版本号]
例子:
docker tag 2f415b0e9a6e registry.cn-shenzhen.aliyuncs.com/xdclass/xdclass_images:xd_rabbitmq-v1.0.2

docker push registry.cn-shenzhen.aliyuncs.com/xdclass/xdclass_images:xd_rabbitmq-v1.0.2

3)拉取镜像
线上服务器拉取镜像:
docker login --username=794666918@qq.com registry.cn-shenzhen.aliyuncs.com

docker pull registry.cn-shenzhen.aliyuncs.com/xdclass/xdclass_images:xd_rabbitmq-v1.0.2

启动容器:
docker run -d --name "xdclass_mq" -p 5672:5672 -p 15672:15672 2f415b0e9a6e

微服务之docker(一)的更多相关文章

  1. 微服务与Docker介绍

    什么是微服务 微服务应用的一个最大的优点是,它们往往比传统的应用程序更有效地利用计算资源.这是因为它们通过扩展组件来处理功能瓶颈问题.这样一来,开发人员只需要为额外的组件部署计算资源,而不需要部署一个 ...

  2. CI Weekly #3 | 关于微服务、Docker 实践与 DevOps 指南

    CI Weekly 围绕『 软件工程效率提升』 进行一系列技术内容分享,包括国内外持续集成.持续交付,持续部署.自动化测试. DevOps 等实践教程.工具与资源,以及一些工程师文化相关的程序员 Ti ...

  3. 微服务架构:基于微服务和Docker容器技术的PaaS云平台架构设计(微服务架构实施原理)

    版权声明:本文为博主原创文章,转载请注明出处,欢迎交流学习! 基于微服务架构和Docker容器技术的PaaS云平台建设目标是给我们的开发人员提供一套服务快速开发.部署.运维管理.持续开发持续集成的流程 ...

  4. 小D课堂 - 新版本微服务springcloud+Docker教程_汇总

    小D课堂 - 新版本微服务springcloud+Docker教程_1_01课程简介 小D课堂 - 新版本微服务springcloud+Docker教程_1_02技术选型 小D课堂 - 新版本微服务s ...

  5. .NET 微服务和Docker容器

    .NET 微服务:适用于容器化 .NET 应用的体系结构 容器和 Docker 简介 什么是 Docker? Docker 术语 Docker 容器.映像和注册表 为 Docker 容器选择 .NET ...

  6. .net core 微服务架构-docker的部署-包括网关服务(Ocelot)+认证服务(IdentityServer4)+应用服务(asp.net core web api)

    本文主要介绍通过Docker来部署通过.Net Core开发的微服务架构,部署的微服务主要包括统一网关(使用Ocelot开发).统一认证(IdentityServer4).应用服务(asp.net c ...

  7. .NET Core 微服务架构-Docker部署

    本文主要介绍通过Docker来部署通过.NET Core开发的微服务架构,部署的微服务主要包括统一网关(使用Ocelot开发).统一认证(IdentityServer4).应用服务(ASP.NET C ...

  8. 微服务SpringCloud+Docker入门到高级实战(教程详情)

    第一章 课程介绍和学习路线 1.微服务架构SpringCloud课程介绍 简介:课程介绍和课程大纲讲解,讲课风格和重点内容理解技巧 2.技术选型和学后水平 简介:课程所需基础和技术选型讲解,学完课程可 ...

  9. 微服务SpringCloud+Docker入门到高级实战(目录)

    第一章 课程介绍和学习路线 1.微服务架构SpringCloud课程介绍 简介:课程介绍和课程大纲讲解,讲课风格和重点内容理解技巧2.技术选型和学后水平 简介:课程所需基础和技术选型讲解,学完课程可以 ...

  10. 微服务 SpringCloud + docker

    最近看到微服务很火,也是未来的趋势,所以就去学习下 好,接下来我们来认识下spring cloud.一.什么是spring cloud?它的中文官网这样说: 微服务架构集大成者,云计算最佳业务实践. ...

随机推荐

  1. R语言 几个易错的地方

    1.列表与向量 定义一个向量,然后向内添加元素,得到一个长向量列表: > a = c() #定义一向量 > for (i in 1:5) + a = c(a,i) > a [1] 1 ...

  2. python三大神器===》生成器

    1. 认识生成器 利用迭代器,我们可以在每次迭代获取数据(通过next()方法)时按照特定的规律进行生成.但是我们在实现一个迭代器时,关于当前迭代到的状态需要我们自己记录,进而才能根据当前状态生成下一 ...

  3. USB2.0主机控制器 UPD720114 简单详解

    UPD720114 是符合 USB 2.0规格的集线器控制器,适用于“符合生态原则的解决方案”.这种小型封装的控制器集成了核心逻辑电路的2.5 V 内部电压调整器.终端电阻器,减少了所需要的外部组件的 ...

  4. react的this.setState详细介绍

    this.setState是react类组件中最常用的一个react API,使用它可以改变state从而改变页面.今天我们就来详细的学习一下这个东西.比如: import React, { Comp ...

  5. Redis哨兵机制原理

    1.概述 Redis Sentinel是一个分布式系统,为Redis提供高可用性解决方案.可以在一个架构中运行多个 Sentinel 进程(progress), 这些进程使用流言协议(gossip p ...

  6. javaweb利用ajax使登录窗口不跳转页面实现对账号密码的判断

    和上一篇判断用户名是否被占用不跳转页面类似!利用ajax实现跳转,要导入jquery文件库!具体代码我会贴出来,注释在里面!!可以观摩一手!(代码我也留下链接,如果失效,评论补发,代码可能导入也无法使 ...

  7. case...when...和decode——oracle

    1.decode函数: 用法:decode(条件,值1,翻译1,值2,翻译2,......,缺省值): 例子: ','失败','未知') from table t1;--改变字段的显示值 ,变量1,变 ...

  8. Java JDK for Windows

    目录 JDK简介下载安装配置JAVA_HOME和Path测试禁止Java自动更新(可选操作) JDK简介 JDK是Java语言的软件开发工具包,主要用于移动设备.嵌入式设备上的java应用程序.JDK ...

  9. 尝试用kotlin做一个app(五)

    JSP后台管理系统 开发工具是IntelliJ IDEA+tomcat+mysql5.6.19+mysql-connector-java-5.1.48.jar+easyui+kindeditor 之前 ...

  10. python---函数定义、调用、参数

    1.函数定义和调用 下面def test部分的代码块是函数定义:test(2,3)则是函数调用 def test(a,b): print(a) print(b) test(,) 2.必填参数,即函数调 ...