过去的软件不是基础设施吗? 操作系统、中间件、数据库都是我们熟知的基础设施软件。但绝大多数软件并不是基础设施软件。因为他们缺乏一个稳定的维护机制和对外服务标准,便只能在时代的大浪淘沙中趋于沉寂。
docker build -t 机构/镜像名称<:tags> Dockerfile目录 # Dockerfile目录如果是当前目录,则用. # 第一部分 # 从基准镜像构建 FROM 镜像 # 第二部分 # MAINTAINER,一般写个人id或组织id # LABEL 就是注释,方便阅读的,纯注释说明。不会对Dockerfile造成任何影响 MAINTAINER 作者名字 LABEL version = "1.0.0" LABEL description = "测试Dockerfile" # 第三部分 # 工作目录,如果不存在则自动创建,一般是项目目录 WORKDIR 工作目录 # 第四部分 # 环境目录,下举例 ENV JAVA_HOME /usr/local/jdk1.8 # 第五部分 # 把当前所有文件 拷贝到容器上面的工作目录下(包括配置文件),可自定义 COPY . . ADD . . # 第六部分 # 设置构建容器时做的工作 RUN 工作1 && 工作2 # 第七部分 # 创建容器内部的挂载点目录,一般用来存放数据库或需要永久保存的数据,下举例 # 如果和host共享目录,Dockerfile中必须先创建一个挂载点 # 然后在启动容器的时候通过“docker run –v $HOSTPATH:$CONTAINERPATH”来挂载,其中CONTAINERPATH就是创建的挂载点。 VOLUME["/data"] # 第八部分 # 声明容器里使用的端口 EXPOSE <port>[<port>...] # 第九部分 # 设置运行启动容器时做的工作 CMD 工作1 && 工作2 ENTERPOINT 工作1 && 工作2 # Dockerfile中只有最后一个ENTRYPOINT会被执行 FROM centos:latest MAINTAINER tongxinCode@github LABEL version 1.0 ADD ./main . CMD ["./main"] 使用centos作为基础镜像的容器基本可以支持所有的独立二进制程序,但是它还是太笨重了,单个镜像即达到了200MB左右,这是我们不想要的。 路漫漫其修远兮,吾将上下而求索。 |
|