Dockramp 是一个客户端驱动的 Docker 容器镜像构建工具。
主要特性:
没有上下文上传
高效分层和缓存
更丰富和扩展性更强的 Dockerfile 语法
安装:
project_dir="$HOME/dockramp/src/github.com/jlhawn/dockramp" mkdir -p $project_dir git clone https://github.com/jlhawn/dockramp.git $project_dir GOPATH="$project_dir/Godeps/_workspace:$HOME/dockramp" go build -o /usr/local/bin/dockramp github.com/jlhawn/dockramp/cmd/dockramp
使用:
$ # Executes the Dockerfile in this repository. $ dockramp Step 0: FROM golang:1.4.2 Step 1: MAINTAINER "Josh Hawn <jlhawn@docker.com> (github:jlhawn)" Step 2: ENV PROJ_DIR /go/src/github.com/jlhawn/dockramp Step 3: RUN sh -c "mkdir -p $PROJ_DIR" ---> 0744c1be2f5fb40c355bace595171c180f2a7b2d19ec15e0c92da2fa0c1d7198 Step 4: COPY . /go/src/github.com/jlhawn/dockramp ---> 8a40aa285e0ecc70ba5361085ef2faf0e755a8dbf7f2224b377c5c0035dc22a5 Step 5: RUN sh Input: export GOPATH="$PROJ_DIR/Godeps/_workspace:$GOPATH" go build -o /usr/local/bin/dockramp github.com/jlhawn/dockramp/cmd/dockramp ---> 029e66e2587118f5f6c5176da65ffbde3b501b25136a637c3d700ee369104374 Successfully built 029e66e2587118f5f6c5176da65ffbde3b501b25136a637c3d700ee369104374 You can use the -C flag to specify a directory to use as the build context. You can also specify any Dockerfile with the -f flag (this file does not need to be within the context directory!). dockramp also supports many of the standard options used by docker and uses many of the same environment variables and configuration files used by docker as well. Here is the full list of currently supported arguments: $ dockramp --help Usage of dockramp: --cacert="": Trust certs signed only by this CA --cert="": TLS client certificate --key="": TLS client key --tls=false: Use TLS client cert/key (implied by --tlsverify) --tlsverify=true: Use TLS and verify the remote server certificate -C=".": Build context directory -H="": Docker daemon socket/host to connect to -d=false: enable debug output -f="": Path to Dockerfile -t="": Repository name (and optionally a tag) for the image
通过前面的介绍,我们知道了Docker 镜像是多个基于 UnionFS 的镜像层依次挂载的结果,而容器的文件系统则是在以只读方式挂载镜像后增加的一个可读可写的文件系统复合而成。 Docker 中为我们提供了将容器中的这个可读可写的环境持久化为一个镜像层的方法,即docker commit。 docker commit将容器修改的内容保存为镜像,我们可以把它理解为提交容器的更改。 1.生成变更后的镜
安装配置镜像仓库docker-distribution 安装 # yum -y install docker-distribution # systemctl enable docker-distribution.service # systemctl start docker-distribution.service # systemctl status docker-distribution.
创建镜像 编写完成 Dockerfile 之后,可以通过 docker build 命令来创建镜像。 基本的格式为 docker build [选项] 路径,该命令将读取指定路径下(包括子目录)的 Dockerfile,并将该路径下所有内容发送给 Docker 服务端,由服务端来创建镜像。因此一般建议放置 Dockerfile 的目录为空目录。也可以通过 .dockerignore 文件(每一行添
Docker 镜像会将 Dockerfile 中每一步结果保存进其 layer ,如果是从源码构建镜像的话会将代码留在镜像中。为了解决这种问题 DaoCloud 推出了「安全镜像」构建功能。 安全镜像构建流程包含三个步骤:代码编译、文件提取、打包镜像。通过分离编译和打包,产生一个安全、精巧、不含源代码的生产级别镜像。 开始构建安全镜像 我们以DaoCloud/secure-python-sampl
构建基础镜像 我将应用打包到镜像中形成我们所需的镜像,往往需要一个基础的镜像作为我们应用服务的外部环境,那么问题来了,基础镜像从何而来?官方推荐的是直接从官网仓库pull一个,但由于官网被墙的比较厉害,所以这里介绍一些官方提供以及个人方法。 1.使用Debootstrap来创建Ubuntu的base image $ sudo debootstrap raring raring > /dev/nul
本文向大家介绍Docker镜像构建原理解析(不装docker也能构建镜像),包括了Docker镜像构建原理解析(不装docker也能构建镜像)的使用技巧和注意事项,需要的朋友参考一下 在devops流程里面 构建镜像是一个非常重要的过程,一般构建镜像是写dockerfile文件然后通过docker client来构建的image。 docker client 会先检查本地有没有image,如果没有
这是我编写的Dockerfile文件,但是构建镜像的时候发现没有执行npm install,自然也不会有dist文件,不知道是哪里写的有问题,请教一下大家
我正在尝试构建一个安装了plv8扩展的PostgreSql 9.6 docker映像。下面是我的Dockerfile。 生成的图像大小为3.45 GB,而Docker hub的原始图像大小为235 MB。你知道为什么产生的图像尺寸这么大吗?如何缩小其尺寸?我试图使用此链接减小其大小,但不幸的是,docker导入/导出丢失了元数据。 更新: 我试图将所有RUN语句合并为一个语句。 新的大小是3.11