八种Docker容器开发模式---The Shared Volume Dev Container

The Shared Volume Dev Container 
我所有的dev容器与宿主机分享至少一个volume: / home,这是为了便于开发。对于许多app,在开发模式中,使用基于file-system-change的code-reloader运行,这样一来容器
内封装了OS / distro-level的依赖,并在初始环境中帮助验证app-as-bundled工作,而不需要让我每次在代码改变时重启/重建VM。 
至于其他,我只需要重启(而不是重建)容器来应对代码的更改。 
对于test/staging和production容器,大多数情况下不通过volume共享代码,转而使用“ADD”来增添代码到Docker容器中。 
这是我的“homepage”的dev容器的Dockerfile,例如,包含我的个人wiki,存在于“devbase”容器中的 /home下,以下展示了如何使用共享的base容器和/home卷: 
    FROM vidarh/devbase 
    WORKDIR /home/vidarh/src/repos/homepage     ENTRYPOINT bin/homepage web 
以下是dev-version的博客: 
    FROM vidarh/devbase      
    WORKDIR /     USER root      
    # For Graphivz integration     RUN apt-get update 
    RUN apt-get -y install graphviz xsltproc imagemagick      
    USER vidarh 
    WORKDIR /home/vidarh/src/repos/hokstad-com 
   ENTRYPOINT bundle exec rackup -p 8080 
因为他们从一个共享的库中取代码,并且基于一个共享的base容器,这些容器通常当我添加/修改/删除依赖项时会极其迅速重建。 
即便如此也有一些地方是我非常愿意改善,尽管上面的base是轻量级的,他们大多数在这些容器仍未使用。由于Docker使用copy-on-write覆盖,这不会导致一个巨大的开销,但它仍然意味着我没有做到最小的资源消耗,或者说最小化attack或error的几率。
时间: 2024-10-13 16:02:00

八种Docker容器开发模式---The Shared Volume Dev Container的相关文章

虚拟化技术—docker容器—网络模式

Docker作为目前最火的轻量级容器技术,有很多令人称道的功能,如Docker的镜像管理.然而,Docker同样有着很多不完善的地方,网络方面就是Docker比较薄弱的部分.因此,我们有必要深入了解Docker的网络知识,以满足更高的网络需求.这里先介绍Docker自身的4种网络工作方式. 1. Docker的4种网络模式 我们在使用docker run创建Docker容器时,可以用--net选项指定容器的网络模式,Docker有以下4种网络模式: § host模式,使用--net=host指定

初识Docker容器网络模式

Docker容器4种网络模式基于docker run创建docker容器时,可使用--net选项指定容器网络模式,Docker网络模式有:1).None模式不为容器配置任何网络.--network none # docker run -it --network none busybox:latest Unable to find image 'busybox:latest' locally latest: Pulling from library/busybox ee153a04d683: Pu

docker之docker容器flannel模式多网段跨主机通信

一.简介flannel是为实现多网段通信的第三方的解决方案, 是 CoreOS 开发的容器网络解决方案.flannel 为每个 host 分配一个 subnet,容器从此 subnet 中分配 IP,这些 IP 可以在 host 间路由,容器间无需 NAT 和 port mapping 就可以跨主机通信.每个 subnet 都是从一个更大的 IP 池中划分的,flannel 会在每个主机上运行一个叫 flanneld 的 agent,其职责就是从池子中分配 subnet.为了在各个主机间共享信息

docker之docker容器flannel模式多网段跨主机通信所遇问题集

问题一:docker无法启动错误提示:[[email protected] docker.service.d]# systemctl status docker.service ● docker.service - Docker Application Container EngineLoaded: error (Reason: Invalid argument)Drop-In: /usr/lib/systemd/system/docker.service.d└─flannel.confActi

docker容器从入门到实战0826

##docker容器安装和配置### #docker的git-hub网站(账号rshare,密rshare520):https://github.com/login #docker官网hub仓库(账号flyer520,密码rhsare520):https://hub.docker.com #docker官网文档和镜像:https://docs.docker.com/samples/centos/ #docker官网的容器网络配置:https://docs.docker.com/engine/us

docker容器从入门到实战0826(笔记整理)

##docker容器安装和配置### #docker的git-hub网站(账号rshare,密rshare520):https://github.com/login #docker官网hub仓库(账号flyer520,密码rhsare520):https://hub.docker.com #docker官网文档和镜像:https://docs.docker.com/samples/centos/ #docker官网的容器网络配置:https://docs.docker.com/engine/us

Hybrid App—Hybrid App开发模式介绍和各种开发模式对比

什么是Hybrid App 最开的App开发只有原生开发这个概念,但自从H5广泛流行后,一种效率更高的开发模式Hybrid应运而生,它就是"Hybrid模式".Hybrid APP是目前广泛流行的一种APP开发模式 H5渗入APP开发 我们都知道,原生APP开发中有一个webview的组件(Android中是webview,iOS7以下有UIWebview,7以上有WKWebview),这个组件可以加载Html文件. 在Html5没有兴盛之前,加载的Html往往只能用来做一些简单的静态

Docker容器日志清理

前言 最近发现公司Gitlab服务器磁盘满了,经排查发现是docker容器日志占用了几十个G容量,那么这些日志怎么去查看和清理呢? 本节主要讲到的知识点如下: (1)Docker容器日志路径 (2)如何清理Docker容器日志 (3)如何从根本上解决Docker容器日志占用空间问题 Docker容器日志路径 在linux上,容器日志一般存放在/var/lib/docker/containers/container_id/下面,以json.log结尾的文件(业务日志).如下: 如何清理Docker

docker6 构建docker容器集群

十五.构建docker集群 让不同主机中的docker容器可以互相访问. 本章介绍几种解决方案,包括利用端口映射实现容器之间的快速互联,使用Ambassador容器解决跨主机的容器互联. 15.1 使用自定义网桥连接跨主机容器 docker默认的网桥是docker0,它只会在本机连接所有的容器. 容器的虚拟网卡在主机上看一般叫做veth*而docker0网桥把所有这些网卡桥接在一起. 可以把这个网络看成是一个私有的网络,如果要让外网连接到容器中,就需要做端口映射,即-p参数. 15.2 使用Am