白癜风可吃什么好 http://disease.39.net/bjzkbdfyy/180611/6320968.html

容器化的概念很早就有了。年Docker引擎的出现使应用程序容器化变得更加容易。

根据StackOverflow开发者调查-,Docker是开发者#1最想要的平台、#2最喜欢的平台,以及#3最流行的平台。

尽管Docker功能强大,但上手确并不容易。因此,本书将介绍从基础知识到更高层次容器化的的所有内容。读完整本书之后,你应该能够:

容器化(几乎)任何应用程序将自定义Docker镜像上传到在线仓库使用DockerCompose处理多个容器前提熟悉Linux终端操作熟悉JavaScript(稍后的的演示项目用到了JavaScript)目录容器化和Docker简介怎样安装Docker怎样在macOS里安装Docker怎样在Windows上安装Docker怎样在Linux上安装Docker初识Docker-Docker基本知识介绍什么是容器?什么是Docker镜像?什么是仓库?Docker架构概述全景图Docker容器操作基础知识怎样运行容器怎样公开端口如何使用分离模式怎样列表展示容器怎样命名或者重命名一个容器怎样停止或者杀死运行中的容器怎样重新启动容器怎样创建而不运行容器怎样移除挂起的容器怎样以交互式模式运行容器怎样在容器里执行命令如何处理可执行镜像Docker镜像操作基础知识如何创建Docker镜像如何标记Docker镜像如何删除、列表展示镜像理解Docker镜像的分层怎样从源码构建NGINX怎样优化Docker镜像拥抱AlpineLinux怎样创建可执行Docker镜像怎样在线共享Docker镜像怎样容器化JavaScript应用如何编写开发Dockerfile如何在Docker中使用绑定挂载如何在Docker中使用匿名卷如何在Docker中执行多阶段构建如何忽略不必要的文件Docker中的网络操作基础知识Docker网络基础如何在Docker中创建用户定义的桥接网络如何在Docker中将容器连接到网络如何在Docker中从网络分离容器如何删除Docker中的网络如何容器化多容器JavaScript应用程序如何运行数据库服务如何在Docker中使用命名卷如何从Docker中的容器访问日志如何在Docker中创建网络并连接数据库服务如何编写Dockerfile如何在正在运行的容器中执行命令如何在Docker中编写管理脚本如何使用Docker-Compose组合项目DockerCompose基础如何在DockerCompose中启动服务如何在DockerCompose中列表展示服务如何在DockerCompose正在运行的服务中执行命令如何访问DockerCompose中正在运行的服务日志如何在DockerCompose中停止服务如何在DockerCompose中编写全栈应用程序结论项目代码

可以在这个仓库中找到示例项目的代码,欢迎?。

完整代码在containerized分支。

贡献

这本书是完全开源的,欢迎高质量的贡献。可以在这个仓库中找到完整的内容。

我通常先在本书的GitBook版本上进行更改和更新,然后在将其发布在freeCodeCamp专栏。你可以在这个链接中找到本书的最新编辑中版本。别忘了评分支持。

如果你正在寻找本书的完整稳定版本,那么freeCodeCamp是最好的选择。如果你有所收获,请分享给你的朋友。

不管阅读本书的哪个版本,都不要忘记留下你的意见。欢迎提出建设性的批评。

容器化和Docker简介

摘自IBM,

容器化意味着封装或打包软件代码及其所有依赖项,以便它可以在任何基础架构上统一且一致地运行。

换句话说,容器化可以将软件及其所有依赖项打包在一个自包含的软件包中,这样就可以省略麻烦的配置,直接运行。

举一个现实生活的场景。假设你已经开发了一个很棒的图书管理应用程序,该应用程序可以存储所有图书的信息,还可以为别人提供图书借阅服务。

如果列出依赖项,如下所示:

Node.jsExpress.jsSQLite3

理论上应该是这样。但是实际上还要搞定其他一些事情。Node.js使用了node-gyp构建工具来构建原生加载项。根据官方存储库中的安装说明,此构建工具需要Python2或3和相应的的C/C++编译器工具链。

考虑到所有这些因素,最终的依赖关系列表如下:

Node.jsExpress.jsSQLite3Python2or3C/C++tool-chain

无论使用什么平台,安装Python2或3都非常简单。在Linux上,设置C/C++工具链也非常容易,但是在Windows和Mac上,这是一项繁重的工作。

在Windows上,C++构建工具包有数GB之大,安装需要花费相当长的时间。在Mac上,可以安装庞大的Xcode应用程序,也可以安装小巧的Xcode命令行工具包。

不管安装了哪一种,它都可能会在OS更新时中断。实际上,该问题非常普遍,甚至连官方仓库都专门提供了macOSCatalina的安装说明。

这里假设你已经解决了设置依赖项的所有麻烦,并且已经准备好开始。这是否意味着现在开始就一帆风顺了?当然不是。

如果你使用Linux而同事使用Windows该怎么办?现在,必须考虑如何处理这两个不同的操作系统不一致的路径,或诸如nginx之类的流行技术在Windows上未得到很好的优化的事实,以及诸如Redis之类的某些技术甚至都不是针对Windows预先构建的。

即使你完成了整个开发,如果负责管理服务器的人员部署流程搞错了,该怎么办?

所有这些问题都可以通过以下方式解决:

在与最终部署环境匹配的隔离环境(称为容器)中开发和运行应用程序。将你的应用程序及其所有依赖项和必要的部署配置放入一个文件(称为镜像)中。并通过具有适当授权的任何人都可以访问的中央服务器(称为仓库)共享该镜像。

然后,你的同事就可以从仓库中下载镜像,可以在没有平台冲突的隔离环境中运行应用,甚至可以直接在服务器上进行部署,因为该镜像也可以进行生产环境配置。

这就是容器化背后的想法:将应用程序放在一个独立的程序包中,使其在各种环境中都可移植且可回溯。

现在的问题是:Docker在这里扮演什么角色?

正如我之前讲的,容器化是一种将一切统一放入盒子中来解决软件开发过程中的问题的思想。

这个想法有很多实现。Docker就是这样的实现。这是一个开放源代码的容器化平台,可让你对应用程序进行容器化,使用公共或私有仓库共享它们,也可以编排它们。

目前,Docker并不是市场上唯一的容器化工具,却是最受欢迎的容器化工具。我喜欢的另一个容器化引擎是RedHat开发的Podman。其他工具,例如Google的Kaniko,CoreOS的rkt都很棒,但和Docker还是有差距。

此外,如果你想了解容器的历史,可以阅读ABriefHistoryofContainers:FromthesTillNow,它描述了该技术的很多重要节点。

怎样安装Docker

Docker的安装因使用的操作系统而异。但这整个过程都非常简单。

Docker可在Mac、Windows和Linux这三个主要平台上完美运行。在这三者中,在Mac上的安装过程是最简单的,因此我们从这里开始。

怎样在macOS里安装Docker

在Mac上,要做的就是跳转到官方的下载页面,然后单击_DownloadforMac(stable)_按钮。

你会看到一个常规的AppleDiskImage文件,在该文件的内有Docker应用程序。所要做的就是将文件拖放到Applications目录中。

只需双击应用程序图标即可启动Docker。应用程序启动后,将看到Docker图标出现在菜单栏上。

现在,打开终端并执行docker--version和docker-



转载请注明地址:http://www.tanhuaa.com/jsth/7854.html