码迷,mamicode.com
首页 > 系统相关 > 详细

Linux----------容器docker file

时间:2019-08-19 19:22:39      阅读:81      评论:0      收藏:0      [点我收藏+]

标签:启动   inux   结构   workspace   debian   sum   多个   开启   sts   

一、Docker file

如果你想要从一个基础镜像开始建立一个自定义镜像,可以选择一步一步进行构建,也可以选择写一个配置文件,然后一条命令(docker build)完成构建,显然配置文件的方式可以更好地应对需求的变更,这个配置文件就是Dockerfile。

Dockerfile其实可以看做一个命令集。每行均为一条命令。每行的第一个单词,就是命令command。后面的字符串是该命令所要接收的参数。比如ENTRYPOINT /bin/bash。ENTRYPOINT命令的作用就是将后面的参数设置为镜像的entrypoint。

二、docker build

docker build?命令用于使用 Dockerfile 创建镜像。

语法:docker build [OPTIONS] PATH | URL | -
OPTIONS说明:
--build-arg=[] :设置镜像创建时的变量;
--cpu-shares :设置 cpu 使用权重;
--cpu-period :限制 CPU CFS周期;
--cpu-quota :限制 CPU CFS配额;
--cpuset-cpus :指定使用的CPU id;
--cpuset-mems :指定使用的内存 id;
--disable-content-trust :忽略校验,默认开启;
-f :指定要使用的Dockerfile路径;
--force-rm :设置镜像过程中删除中间容器;
--isolation :使用容器隔离技术;
--label=[] :设置镜像使用的元数据;
-m :设置内存最大值;
--memory-swap :设置Swap的最大值为内存+swap,"-1"表示不限swap;
--no-cache :创建镜像的过程不使用缓存;
--pull :尝试去更新镜像的新版本;
--quiet, -q :安静模式,成功后只输出镜像 ID;
--rm :设置镜像成功后删除中间容器;
--shm-size :设置/dev/shm的大小,默认值是64M;
--ulimit :Ulimit配置。
--tag, -t:?镜像的名字及标签,通常 name:tag 或者 name 格式;可以在一次构建中为一个镜像设置多个标签。
--network:?默认 default。在构建期间设置RUN指令的网络模式

三、Docker File体系结构

Docker File体系结构:
FROM                        基础镜像,当前新镜像是基于哪个镜像的
MAITAINER               镜像维护者的姓名和邮箱地址
RUN                           容器构建时需要运行的命令
EXPOSE                    当前容器对外暴露出的端口
WORKDIR                 指定在创建容器后,终端默认登录的进来工资目录,一个落脚点
ENV                           用来构建镜像过程中设置环境变量
ADD                           将宿主机目录下的文件拷贝进镜像且ADD命令会自动出来URL和解压tar压缩包
CPTY                         类似ADD,拷贝文件和目录到镜像中。将从构建上下文目录的文件或目录复制到新的一层的镜像的位置
VOLUME                    容器数据卷,用于数据保存和持久化工作
CMD                           指定一个容器时要运行的命令,可以有多个,但就最后一个生效,CMD会被docker run后的参数替换
ENTRYPOINT            指定一个容器启动时要运行的命令,目的和CMD一样,都是在指定容器启动程序及参数
ONBUILD                   当构建一个被继承的Dockerfile时运行命令,父镜像在被子继承后父镜像的onbuild被触发

示例:

# Runner container
FROM registry.cn-hangzhou.aliyuncs.com/aliware2018/debian-jdk8

COPY --from=builder /root/workspace/services/mesh-provider/target/mesh-provider-1.0-SNAPSHOT.jar /root/dists/mesh-provider.jar
COPY --from=builder /root/workspace/services/mesh-consumer/target/mesh-consumer-1.0-SNAPSHOT.jar /root/dists/mesh-consumer.jar
COPY --from=builder /root/workspace/agent/mesh-agent/target/mesh-agent-1.0-SNAPSHOT.jar /root/dists/mesh-agent.jar

COPY --from=builder /usr/local/bin/docker-entrypoint.sh /usr/local/bin
COPY start-agent.sh /usr/local/bin

RUN set -ex && mkdir -p /root/logs

ENTRYPOINT ["docker-entrypoint.sh"]

Linux----------容器docker file

标签:启动   inux   结构   workspace   debian   sum   多个   开启   sts   

原文地址:https://www.cnblogs.com/wangchengshi/p/11378645.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!