# iSharkFly Docker 文档和手册 iSharkFly Docker 文档和手册,使用 docsify 来对 MD 文件进行编译和修改。 因为最近项目的工作需要,要求使用 Docker 来对项目进行容器化。 我们可能会用到项目中的一些有关的内容,因此特地整理的了一些相关的文档和翻译。 ## Docker 是什么 Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。 ### Docker的组成 一个完整的Docker有以下几个部分组成: * docker Client客户端 * Docker Daemon守护进程 * Docker Image镜像 * Docker Container容器 我们通过客户端写命令,然后客户端将命令发送给守护进程,守护进程再将命令执行的结果返回给客户端,这就使我们能通过命令查看执行结果,镜像就是容器的源代码,容器通过镜像启动,使用仓库来保存用户构建的镜像,仓库分为共有和私有。 ## 文档结构 本文档的编译发布版本访问地址:[docker-docs.isharkfly.com](https://docker-docs.isharkfly.com) (本 WIKI 中的内容将会与GitHub 中的源代码转换文件在线同步发布)。 iSharkFly(鲨鱼君) 有关 Docker 相关文档和讨论,请访问:[https://www.isharkfly.com/tags/c/computer-technology/system-and-container/25/docker](https://www.isharkfly.com/tags/c/computer-technology/system-and-container/25/docker) GitHub 上有关 iSharkFly Docker 的项目的源代码文件:[https://github.com/iSharkFly-Docs/Docker-Docs](https://github.com/iSharkFly-Docs/Docker-Docs) 如果您有兴趣参与我们的小组和项目,请使用下面的联系方式和我们联系: | 联系方式名称 | 联系方式 | |--------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | 电子邮件 | [yhu@ossez.com](mailto:yhu@ossez.com) | | QQ 或微信 | 103899765 | | 社区论坛 | [https://www.isharkfly.com/tags/c/computer-technology/system-and-container/25/docker](https://www.isharkfly.com/tags/c/computer-technology/system-and-container/25/docker) | | iSharkFly KB | [track.ossez.com/articles](https://track.ossez.com/articles) | ## 微信及公众平台 我们建议您通过社区论坛来和我们进行沟通,请关注我们的微信公众号。 ![](https://cdn.ossez.com/img/cwikius/cwikius-qr-wechat-search-w400.png) ## 文档和手册快速导航 有关相关文档和我们参考过的一些内容的快速导航。 | 网站地址 | 网站链接 | |--------------------------|----------------------------------------------| | CWIKIUS Docker Docs 在线文档 | https://docker-docs.isharkfly.com | | CWIKI.US 空间 | https://www.cwiki.us/display/DockerZH/Docker | | Docker 官方文档 | https://docs.docker.com/ | | chinese_docker | https://github.com/widuu/chinese_docker | | daocloud.io | https://guide.daocloud.io/#all-updates | | Docker — 从入门到实践 | https://yeasy.gitbook.io/docker_practice | 欢迎来到 Docker 文档的代码仓库。本代码仓库是文档 https://docs.docker.com 的源代码。 如果你发现这个文档有任何问题,Docker 官方欢迎你来创建 合并请求(Pull Requests)。Docker 的文档是完全开源的,Docker 官方也非常感谢社区对 Docker 的贡献。 ## 提供反馈 Docker 的官方和 iSharkFly 都非常欢迎您对我们的内容进行反馈,并且我们将这个提供反馈的方法进行了调整,以便于更好的进行访问和提交。你可以对页面进行编辑或者针对 https://docs.docker.com 上每一个页面的右上角提供的链接来对内容进行编辑和提交合并请求。 你也可以对每一个页面来进行评分,评分的链接在页面的页脚。 **本仓库只针对文档的内容进行修改。** 如果你考虑对文档进行修改的话,在提交 PR 之前你应该先考虑下这个问题应该是和文档相关的,比如说文档描述的不清楚,文档出现了错误,或者在文档让用户非常困惑等。 * 如果你在使用 Docker 的时候遇到了问题,请访问 https://forums.docker.com 论坛中的内容。 * 如果针对 Docker 的新功能和特性有什么更好的建议或者你找到了 Docker 的一个 bug,请使用 Docker 的代码仓库来提交你的问题。 ## 贡献 我们非常重视你对文档的贡献,我们也希望能够尽可能的在文档仓库中间的的工作。 在你决定对文档进行贡献的时候,你需要首先确定你希望工作的分支。如果你在这个上面有什么困惑的话,你只需要向我们提问即可,官方和我们都会尽可能的帮助你。 如果官方的开放人员或者其他人发现了你可能提交了错误的分支,将会有人提醒你的,这个时候你只需要 rebase 你的工作就可以了。 > **Note**: 希望对 Docker 的开发贡献你自己的力量?请参考下面文档的内容:[Contribution guidelines](CONTRIBUTING.md)。 ### 不需要在这里编辑的文件 文件或者目录列在为 [`.NOT_EDITED_HERE.yaml`](.NOT_EDITED_HERE.yaml) 关键字的路径被其他仓库使用的是不应该进行编辑的。 对上面字符串进行编辑后提交的 PR 请求会被驳回(rejected),请确定你编辑的仓库中的文件和路径是正确的。 ### 文档改善计划概述 合并请求(PR)应该是针对 `master` 分支提出的,这个内容包括有: * 不针对新特性的概念性的内容和基于任务的信息 * 重新格式化或者重写部分内容 * 文档错误的修改 * 拼写或者语法错误 > 你是否享受创建一些图形呢?好看漂亮的图形和设计是一个好文档的关键,我们尤其欢迎您在这个方面的贡献和帮助。 ## GitHub 提交 合并请求(PR) 之前的预存(staging ) 针对提交到 `master` 分支的每一次合并请求,一个针对站点使用 Netlify 的预存 staging 将会被创建。 如果站点被重构创建,将会看到 **deploy/netlify — Deploy preview ready**** 文字。 否则的话,你将会看到一个错误信息,单击 **Details** 来查看暂存的站点或者阻止站点重构的错误。重新查看暂存的站点来确定是不是你提交的内容导致的错误。 在 PR 合并到 master 分支之前,其他的项目相关人员同时也会查看暂存的站点。通过这个选项,我们来保护 https://docs.docker.com 站点不会有错误。 ## 在本地构建和查看文档 在你的本地计算机上,克隆这个仓库: ```bash git clone --recursive https://github.com/cwiki-us-docs/docker-docs.git cd docker-docs ``` 然后使用 Docker Compose 来运行和构建这个文档,Docker Compose 的访问链接为:https://docs.docker.com/compose ```bash docker-compose up -d --build ``` > Docker Compose 包含有 [Docker Desktop](https://docs.docker.com/desktop)。 > 如果你的计算机上没有安装 Docker Compose,请访问下面的链接上的参考来进行安装:cd 。 一旦容器被构建和运行了,请通过浏览器来访问 [http://localhost:4000](http://localhost:4000]地址来查看构建成功的文档页面。 当你对文档进行了新的修改后,你可以再次运行 *docker-compose up* 命令。这个命令将会重新构建文档,并且将你的容器进行更新。 ```bash docker-compose up -d --build ``` 一旦容器被构建和运行了,请通过浏览器来访问 [http://localhost:4000](http://localhost:4000]地址来查看构建成功的文档页面。 如果你想停止预存(staging)的容器,请使用 *docker-compose down* 命令 ```bash docker-compose down ``` ### 启用文档的部署特性 在默认的本地构建文档中,我们禁用了一些特性来缩短文档的构建时间。在针对 [docs.docker.com](https://docs.docker.com) 网站中部署的文档和本地构建的文档有下面的一些配置不同: - 使用 `js/metadata.json` 的自动搜索完成 - google analytics 配置 - 页面评分配置(page ratings) - 创建站点地图 `sitemap.xml` - 样式表的压缩和小型化(css/style.css) - 针对内容在其他仓库中的 "编辑页面(edit this page)" 页面的链接 如果你对上面的内容进行了修改的话,你可以在你的本地使用 "服务器(Production)" 构建。 为了能够预览针对服务器的部署环境的特性是否被启用了,你需要在对你的文档进行构建的时候设置 `JEKYLL_ENV` 环境变量。 ```bash JEKYLL_ENV=production docker-compose up --build ``` 当构建完成后,请访问 [http://localhost:4000](http://localhost:4000) 地址中的内容来确定构建的正确。 如果你对文档进行了修改,并且需要重新构建的话,你需要重复上面的步骤。 ## 重要的文件 - `/_data/toc.yaml` 定义了文档的左侧导航 - `/js/docs.js` 定义了文档使用的主要 JS 文本,例如 TOC 创建,菜单同步等 - `/css/style.scss` 定义了文档使用的主要样式表规则 - `/_layouts/docs.html` 为 HTML 的模板文件,包括定义了 header 和 footer,同时也包括了所有文档内容需要使用的 JS/CSS ## GitHub 查看的相关链接 你可以自由的链接到 `../foo.md` 文件,这样的话这个文本就可以在 GitHub 上进行阅读了,但是需要注意的是 Jekyll 模板将会通知templating notation `{% such as this %}` 将会被读成原始文档,而不会被处理。因此最好的办法就是访问官方 [https://docs.docker.com/](https://docs.docker.com/) 文档链接来进行阅读文档。 ### 测试修改和实践指南 如果你希望对修改的样式表进行测试,或者你希望对 Markdown, Bootstrap, JQuery 或者其他的一些内容进行测试的话,请参考 `test.md` 中的内容(访问路径为 `/test/`)。 ### 预页面字体格式 字体格式将会告诉页面在 Markdown 文件的最上端,使用 3 个横线作为开始和结束。其中包括有 YAML 内容,下面为可以支持的关键字,包括有表头,描述和关键字是否是必须的。 | 关键字 | 是否必须 | 描述 | |----------------|------|----------------------------------------------------------------------------------------------------------------------------------------------| | title | 是 | 这个字段定义的是页面的标题,将会添加到 HTML 输出中的 `