履行构建:
Tech Neo技巧沙龙 | 11月25号,九州云/ZStack与您一路商量云时代收集界线治理实践
- # docker build -t myrepo/myhttpserver:latest .
- Sending build context to Docker daemon 5.894MB
- Step 1/5 : FROM ubuntu:14.04
- ---> dea1945146b9
- Step 2/5 : COPY ./myhttpserver /root/myhttpserver
- ---> 993e5129c081
- Step 3/5 : RUN chmod +x /root/myhttpserver
- ---> Running in 104d84838ab2
- ---> ebaeca006490
- Removing intermediate container 104d84838ab2
- Step 4/5 : WORKDIR /root
- ---> 7afdc2356149
- Removing intermediate container 450ccfb09ffd
- Step 5/5 : ENTRYPOINT /root/myhttpserver
- ---> Running in 3182766e2a68
- ---> 77f315e15f14
- Removing intermediate container 3182766e2a68
- Successfully built 77f315e15f14
- Successfully tagged myrepo/myhttpserver:latest
- # docker images
- REPOSITORY TAG IMAGE ID CREATED SIZE
- myrepo/myhttpserver latest 77f315e15f14 18 seconds ago 200MB
- # docker run myrepo/myhttpserver
- Webserver start
- -> listen on port:1111
以上是最根本的image build办法。
接下来,我们可能会碰到如下需求:
* 搭建一个Go法度榜样的构建情况有时刻是很耗时的,尤其是对那些依附很多第三方开源包的Go应用来说,下载包就须要很长时光。我们最好将这些易变的器械一切打包到一个用于Go法度榜样构建的builder image中;
* 我们看到膳绫擎我们构建出的myrepo/myhttpserver image的SIZE是200MB,这似乎有些过于“宏大年夜”了。固然每个主机node上的docker有cache image layer的才能,但我们照样欲望能build出加倍精简短小的image。
2、借助golang builder image
构建这个builder image:
Docker Hub上供给了一个带有go dev情况的官方 golang image repository ,我们可以直接应用这个golang builder image来帮助构建我们的应用image;对于一些对第三方包依附较多的Go应用,我们也可以以这个golang image为base image定制我们本身的专用builder image。
我们基于golang:latest这个base image构建我们的golang-builder image,我们编写一个Dockerfile.build用于build golang-builder image:
我们先来看一下针对膳绫擎例子,multi-stage build所应用Dockerfile:
- // github.com/bigwhite/experiments/multi_stage_image_build/isomorphism/Dockerfile.build
- FROM golang:latest
推荐阅读
Mobile Pwn2Own世界黑客大赛攻破iOS11,iPhone X被远程越狱
Tech Neo技巧沙龙 | 11月25号,九州云/ZStack与您一路商量云时代收集界线治理实践 信赖会有越来越多的年青人参加到收集安然行业中来,以“没有收集安然就没有国度安然”为指导,>>>详细阅读
本文标题:理解Docker的多阶段镜像构建
地址:http://www.17bianji.com/lsqh/38807.html
1/2 1