【docker】Dockerfile

转载:

=============================================================

=============================================================

命令

ARG 定义创建镜像过程中使用的变量
ARG <name>[=<defaul value>] 在执行docker build时,可以通过-build-arg[=]来为变量赋值
FROM 指定所创建镜像的基础镜像
FROM <image> [AS <name>]
FROM <image>:<tag> [AS <name>]
FROM <image>@<digest> [AS <name>]
LABEL 为生成的镜像添加元数据标签信息
LABEL <key>=<value> <key>=<value> <key>=<value>
EXPOSE 声明镜像内服务监听的端口
EXPOSE <port> [<port>/<protocol>...]
ENV 指定环境变抵
ENV <key> <value>
ENTRYPOINT 指定镜像的默认入口命令
ENTRYPOINT ["executable", "param1 ", "param2"]: exec 调用执行
ENTRYPOINT command param1 param2: shell 中执行
VOLUME 创建一个数据卷挂载点
VOLUME ["/data"]
USER 指定运行容器时的用户名或UID
USER daemon
WORKDIR 配置工作目录
WORKDIR /path
ONBUILD 创建子镜像时指定自动执行的操作指令
STOPSIGNAL 指定退出的信号值
HEALTHCHECK 配置所启动容器如何进行健康检查
SHELL 指定默认shell类型
SHELL [” executable”,”parameters ”]默认值为["/bin/sh","-c"]
RUN 运行指定命令
RUN <command>
RUN ["executable","param1","param2"]
CMD 启动容器时指定默认执行的命令
CMD ["executable","param1","param2"]
CMD command paraml param2
CMD ["param1","param2"]
ADD 添加内容到镜像
ADD <src> <dest>
COPY 复制内容到镜像
COPY <src> <dest>

拉去官方 java8 镜像

docker pull java:

方式一

打包 spring boot 应用

编辑 Dockerfile

FROM java:8
LABEL maintainer ycx
VOLUME /tmp
ADD demo-service-0.0.1.jar demo.jar
RUN sh -c 'touch /demo.jar'
EXPOSE 9900
ENV JAVA_OPTS=""
ENTRYPOINT [ "sh", "-c", "java $JAVA_OPTS -Djava.security.egd=file:/dev/./urandom -jar /demo.jar" ]

加了 EXPOSE 9900 后 -P 才能随机分配端口

FROM java:8
LABEL author=ycx
VOLUME /tmp
RUN mkdir /ycx
COPY demo-service-0.0.1.jar /ycx/demo.jar
EXPOSE 9900
ENTRYPOINT ["java", "-Djava.security.egd=file:/dev/./urandom", "-jar", "/ycx/demo.jar"]

命令格式

docker build [options] path

使用.当前目录的 Dockerfile 创建镜像,标签为 ycx/demo:1

docker build -t ycx/demo: .

也可指定文件

docker build -t ycx/demo:1 -f /ycx/Dockerfile .
docker run -d -p 0.0.0.0:: --name demo demo-service

方式二

【docker】Dockerfile的更多相关文章

  1. 【Docker】Dockerfile使用apt-get来安装jdk

    前面谈过使用wget来从oracle下载jdk安装文件是使用了cookie欺骗的方法来越过身份验证来使用Dockerfile在ubuntu内安装oracle版本的jdk的. 然而正道还是用apt-ge ...

  2. 【Docker】Docker概述

    [Docker] Docker可以说是近几年非常热门的技术之一了.不管是别人敦促我还是从自己的想法来说,都觉得Docker这玩意儿肯定是要好好学习一下的,无奈没啥时间专门播出来给Docker,一直以来 ...

  3. 【Docker】(5)---springCloud注册中心打包Docker镜像

    [Docker](5)---springCloud注册中心打包Docker镜像 上一篇文章讲了将镜像推送到远处私有仓库,然后再从私有仓库拉取该镜像的过程.而这里的镜像是直接从Docker拉取的. 所以 ...

  4. 【Devops】【docker】【CI/CD】2.docker启动jenkins环境+安装必要的插件

    [注意:]jenkins的docker镜像,需要从官网进入直接获取,其他地方获取到的docker镜像,可能因为Jenkins版本过低,导致后续插件安装失败等问题!!! ================ ...

  5. 【Docker】(4)搭建私有镜像仓库

    [Docker](4)搭建私有镜像仓库 说明 1. 这里是通过阿里云,搭建Docker私有镜像仓库. 2. 这里打包的镜像是从官网拉下来的,并不是自己项目创建的新镜像,主要测试功能 一.搭建过程 首先 ...

  6. 【Docker】(2)---仓库、镜像、容器

    [Docker](2)---仓库.镜像.容器     学习Docker,我觉得首先要了解的是仓库.镜像.容器到底是什么,他们有什么区别. 一.通俗理解 1.Docker 镜像 (images) 容器运 ...

  7. 【ELK】【docker】6.Elasticsearch 集群启动多节点 + 解决ES节点集群状态为yellow

    本章其实是ELK第二章的插入章节. 本章ES集群的多节点是docker启动在同一个虚拟机上 ====================================================== ...

  8. 【Docker】Docker 目录

    目录: [Docker]第一篇 Docker的初始化安装部署 [Docker]第二篇 Docker镜像管理 [Docker]第三篇 Docker容器管理 [Docker]第四篇 Docker仓库管理

  9. 【ELK】【docker】【elasticsearch】1. 使用Docker和Elasticsearch+ kibana 5.6.9 搭建全文本搜索引擎应用 集群,安装ik分词器

    系列文章:[建议从第二章开始] [ELK][docker][elasticsearch]1. 使用Docker和Elasticsearch+ kibana 5.6.9 搭建全文本搜索引擎应用 集群,安 ...

随机推荐

  1. HTML的标签认识

    <!--      html标签     h1~h6 标题标签(只有1~6,依次减小)     p 段落标签     span 无意义的行标签     div 无意义的块标签     b 加粗 ...

  2. GeoServer CQL查询时中文问题

    1.GeoServer可以进行CQL与ECQL过滤,wms和wfs都可以 2.CQL与ECQL查询时,当传中文时会报错.将中文转为Unicode编码后就可以 /* *js Unicode编码转换 */ ...

  3. Vue 幸运大转盘

    转盘抽奖主要有两种,指针转动和转盘转动,个人觉得转盘转动比较好看点,指针转动看着头晕,转盘转动时指针是在转盘的中间位置,这里要用到css的transform属性和transition属性,这两个因为不 ...

  4. 【Luogu P1967】货车运输

    Luogu P1967 题目大意:给定一张图和q个询问,询问x节点和y节点的路径之间最小边权最大可以是多少. 可以发现对于一条边\(E(x,y)\),如果x到y有另一条路径且最小边权大于\(E(x,y ...

  5. 用CodePush在React Native App中做热更新

    最近在学React Native,学到了CodePush热更新. 老师讲了两种实现的方法,现将其记录一下. 相比较原生开发,使用React Native开发App不仅能节约开发成本,还能做原生开发不能 ...

  6. 关于新浪和腾讯短网址API接口的调用

    最新新浪t.cn短网址和腾讯url.cn短网址生成api接口,快速生成t.cn及url.cn超短链接,接口都可以正常调用,觉得不错可以收藏一下. 新浪短网址api接口:1. http://yldwz. ...

  7. kubeadm 报错 error execution phase preflight: couldn’t validate the identity of the API Server: abort connecting to API servers after timeout of 5m0s

    原因:master节点的token过期了 解决:重新生成新token 在master重新生成token # kubeadm token create 424mp7.nkxx07p940mkl2nd # ...

  8. CentOS 7 Keepalive 脚本不执行解决

    目录 问题 问题一 括号问题 问题二 脚本名称问题 问题 起因是在测试部署 Altls + Keepalive 高可用读写分离,测试停止Atlas服务的时候,发现Keepalive不会自动主从切换,就 ...

  9. Ubuntu&Mac下使用alias简化日常操作

    alias 在Linux系统中用来给指令起别名,用来简化很长的指令. 用法很简单: alias : 查看当前所有别名 alias tmstart = "$CATALINA_HOME/bin/ ...

  10. C语言I作业08

    C语言I作业08 这个作业属于哪个课程 C语言程序设计ll 这个作业的要求在哪里 https://edu.cnblogs.com/campus/zswxy/SE2019-2/homework/9981 ...