Linux----------容器docker file
目录
一、Docker file如果你想要从一个基础镜像开始建立一个自定义镜像,可以选择一步一步进行构建,也可以选择写一个配置文件,然后一条命令(docker build)完成构建,显然配置文件的方式可以更好地应对需求的变更,这个配置文件就是Dockerfile。 Dockerfile其实可以看做一个命令集。每行均为一条命令。每行的第一个单词,就是命令command。后面的字符串是该命令所要接收的参数。比如ENTRYPOINT /bin/bash。ENTRYPOINT命令的作用就是将后面的参数设置为镜像的entrypoint。 二、docker builddocker build?命令用于使用 Dockerfile 创建镜像。 语法:docker build [OPTIONS] PATH | URL | - 三、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"] (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |