八种最常见docker开发模式

八种最常见docker开发模式

ID:18664494

大小:87.80 KB

页数:17页

时间:2018-09-20

八种最常见docker开发模式_第1页
八种最常见docker开发模式_第2页
八种最常见docker开发模式_第3页
八种最常见docker开发模式_第4页
八种最常见docker开发模式_第5页
资源描述:

《八种最常见docker开发模式》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、八种最常见Docker开发模式Docker已迅速成为本人最喜欢的基础工具之一,以便构建可重复软件产品,从而带来尽可能静态的服务器环境。我在本文中将概述我在使用Docker的过程中开始反复出现的几种模式。我不指望它们会带来多少新奇或惊喜,但希望其中一些有用,我也很想听听各位在使用Docker过程中遇到的模式。我试用Docker的基础是保持在卷中持续的状态,那样Docker容器本身可以随意重建,而不会丢失数据(除非我改动容器状态,而不更新Docker文件(Dockerfile)的状态,而经常重建容器有

2、助于改掉这个坏习惯)。下面的示例Docker文件都专注于此:构建容器――在这种环境下,容器本身可以随时更换,没必要考虑它。1.共享基础容器Docker鼓励“继承”,所以这应该并不奇怪――继承是高效使用Docker的一个基本方面,尤其是由于它有助于减少构建新容器所需的时间,因为没必要那么频繁地重新执行步骤。Docker会试图将中间步骤放入到缓存,它在这方面做得很好――有时太好了,不过要是没有明确注明,也很容易错过共享的机会。将我的各种容器迁移到Docker上时明显出现的事情之一是,存在太多的冗余设置

3、。我为预计部署到任何地方的大多数项目运行单独的容器,至少它需要任何长时间运行的进程,或者需要“标准”程序包集之外的任何特定程序包时,是这样,因而我有好多容器,而程序包迅速变得越来越多。等到我考虑迁移时,就试图在Docker中运行“一切”(包括我依赖的少数几个桌面应用程序),以便让我的mybase环境完全可以随意使用。于是我很快开始将我的基本设置提取到基础容器,用于众多用途。下面是我当前的“devbase”Docker文件:FROM debian:wheezy  RUN apt-get update

4、  RUN apt-get -y install ruby ruby-dev build-essential git  RUN apt-get install -y libopenssl-ruby libxslt-dev libxml2-dev  # 用于调试  RUN apt-get install -y gdb strace  # 设置我的用户  RUN useradd vidarh -u 1000 -s /bin/bash --no-create-home  RUN gem install 

5、-n /usr/bin bundler  RUN gem install -n /usr/bin rake  WORKDIR /home/vidarh/  ENV HOME /home/vidarh  VOLUME ["/home"]  USER vidarh  EXPOSE 8080 这里没有什么需要特别说明的――它安装了我往往喜欢随时可用的一些特定工具。这些工具对大多数人来说恐怕不一样。选择什么样的发行版很随意。值得考虑的是,如果/当你重建容器时,就要指定一个特定的标记以避免意外。它在默认情况

6、下暴露了端口8080,因为那是我通常暴露Web应用程序的端口,我通常将这些容器用于这些Web应用程序。它为我添加了一个用户,将userid设置为服务器上的用户ID,并不创建/home目录。之所以不创建/home目录,是由于我从主机绑定挂载共享/home,这就引出了下一种模式。2.共享卷开发容器我的所有开发容器与主机至少共享一个卷:/home,这么做是为了便于开发。就许多应用程序而言,它让我可以让与合适的基于文件-系统-变更的代码重载器一起运行的应用程序处于开发模式,那样容器就可以封装操作系统/发行

7、版层面的依赖项,并且帮助证实捆绑的应用程序在原始环境中运行,我用不着针对每处代码变更,需要完全重启/重建虚拟机。与此同时,我可以相当频繁地重启虚拟机,确保没有什么错失。至于其他,它让我可以只要重启(而不是重建)容器,即可接受代码变更。对于测试/试运行容器和生产容器,我在大多数情况下会避免通过卷共享代码,而是使用“ADD”命令,将相应代码添加到Docker容器本身中。比如说,下面是我“homepage”开发容器的Docker文件,它含有我自主开发的个人维基,可利用来自“devbase”容器的已经共享

8、的/home卷,并展示了共享基础容器和我如何使用共享/home卷:FROM vidarh/devbase  WORKDIR /home/vidarh/src/repos/homepage  ENTRYPOINT bin/homepage web (注意:我确实应该对我的devbase容器加上版本标记)至于我博客的开发版本:FROM vidarh/devbase  WORKDIR /  USER root  # 针对Graphivz整合  RUN apt-get update  RU

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。