Powered by md-Blog  文 - 篇  访客 -

Docker微服务技术环境初探


  分类:Docker  / 
更新:2021-09-24 19:18:50  /  创建:2021-09-24 19:18:50
不要删除
参考文献:
Docker 入门教程——阮一峰 http://www.ruanyifeng.com/blog/2018/02/docker-tutorial.html
Docker 微服务教程——阮一峰 http://www.ruanyifeng.com/blog/2018/02/docker-wordpress-tutorial.html
《第一本Docker书(修订版)》[澳] 詹姆斯·特恩布尔(James Turnbull) 著,李兆海,刘斌,巨震 译
Docker入门实践(精讲版) http://c.biancheng.net/docker/

用户须知

熟悉虚拟机

如果您使用过虚拟机,将有助于理解镜像的概念。

熟悉 Linux

如果您使用过 Linux,并使用过类似 Linux LiveCD,将有助于理解容器相关内容及命令操作。

熟悉 Git命令行、GitHub

如果您熟悉 Git命令行GitHub,您将会很容易理解 Docker 的操作、实现方式。

开发模式和生产环境选择

  • 开发模式:MacOSX > Linux > Windows 10
  • 生产环境:Linux

Docker 原先是基于 Ubuntu 平台上开发的,所以最好使用 Ubuntu、Debian 或者 CentOS/RedHat 操作系统上使用 Docker 进行部署。

MacOSX 和 Windows 自带 Docker ToolBox 包括虚拟机:VirtualBox、客户端、Docker Compose等。

WindowsDocker 需要运行在一个安装了 64 位 Windows 10 操作系统的计算机上,通过启动一个独立的引擎来提供 Docker 环境。

其次,读者需要知晓 Windows 版 Docker 是一个 社区版本(Community Edition,CE)的应用,并 不是为生产环境设计 的。

最后,读者还需要知道 Windows 版 Docker 在某些版本特性上可能是延后支持的。这是因为 Docker 公司对该产品的定位是稳定性第一,新特性其次。

以上 3 点被添加到 Windows 版 Docker 这个安装快捷简单,但 并不支持生产环境部署的产品当中

Mac 版 Docker 虽然也不是为生产环境而设计的,但 Mac 版 Docker 通过对外提供 daemon 和 API 的方式与 Mac 环境实现无缝集成。这意味着读者可以在 Mac 上打开终端并直接 使用 Docker 命令

Mac 版 Docker 安装了 Docker 引擎(客户端以及服务端守护程序)、Docker ComposeDocker machine 以及 Notary 命令行

MacOSX 提供友好的客户端和开发工具引擎的同时,具备了终端进入用例等特性无缝集成特性,符合开发模式。

Windows 运维命令行复杂于其它两系统:

img

Docker

轻量级虚拟化技术,提供一个简单、轻量的建模方式。

整合,统一,交付、迭代标准化

与传统化虚拟机相比优势:更轻量、启动速度更快,单体上课同事跑上千个容器,扩展方便等。
重新定义了软件开发、测试、交付和部署的流程。即:我们交付的不是代码、配置文件、数据库。而是整个应用运行环境。

解决:我们测试环境是好的,上线怎么就不行了开发时一切正常,肯定是运维的问题。 之类的问题。

架构

(C/S)客户端/服务器架构

运行模式

  • 64位 计算机
  • Linux 3.8+ 内核
内核检测:
uname -a
  • 所有操作必须使用 sudo 获取 root 权限操作
  • Docker 提供了一个命令行工具 docker 以及一整套 RESTful API 来与进程进行交互。
  • 推荐单个容器只运行一个应用或进程,形成一个分布式应用模型。

Device Mapper 存储驱动

检测安装:
ls -l /sys/class/misc/device-mapper

跨平台性

构建一次,在各个平台上运行。

沙盒性

  • 环境隔离
  • 命名空间
  • 文件系统隔离
  • 进程隔离
  • 网络隔离
  • 资源(CPU、内存)分配隔离

怎么用?

  • 一个微服务容器(container),可以是一个数据库 MySQL,可以是一个 Apache 服务,也可以是一个 PHP 运行环境。通过 Docker Compose 可以将多个容器组成一个系统,形成一个完整的应用。
  • 通过官方、社区镜像(images),我们可以安装一个 CentOS 系统到一个容器,对其配置达到我们需要的环境要求,再将其进行镜像封装。下次我们可以轻松+愉快地部署(我们配置好的镜像)到新的容器上。

网址

官方:https://www.docker.com/

免费 or 付费

Docker CE 是免费的。

Docker EE 包含 Docker CE 中的全部功能,还包括了商业支持以及与其他 Docker 产品的集成,比如 Docker 可信镜像库和通用控制面板。

img

Docker客户端

推荐:MacOS 或 Windows 平台开发,自带 Compose 组件集成工具。

Linux

具备一定的 Linux/Unix 技能,熟悉命令行、文件编辑、软件包安装、服务管理和基本网络操作。

CentOS/RedHat

yum -y install docker

Ubuntu、ce 版本为免费版

apt-get -y install docker-ce

Registry

  • 公有:Docker Hub
  • 私有:自设防火墙内,满足特殊安全隔离情况需求。

Docker Hub

https://hub.docker.com/

Hub 中的容器举例

img

用到 Git

img

熟悉 NODE

$ cat Dockerfile

FROM alpine
LABEL maintainer="nigelpoulton@hotmail.com"
RUN apk add --update nodejs nodejs-npm
COPY . /src
WORKDIR /src
RUN npm install
EXPOSE 8080
ENTRYPOINT ["node", "./app.js"]

用到 Node.js 的 npm

img

img

用到 linux 指令

img

简易的配置项

img

熟悉 Go 语言

因为是 GoLang 开发的


不要删除

小站不易,感谢支持!