【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. 力扣(LeetCode)二进制间距 个人题解

    输入:6 输出:1 解释: 6 的二进制是 0b110 . 示例 4: 输入:8 输出:0 解释: 8 的二进制是 0b1000 . 在 8 的二进制表示中没有连续的 1,所以返回 0 . 提示: 1 ...

  2. PHP面向对象中new self( )和 new static( ) 的区别

    在PHP中 self指向定义了当前被调用方法的类, static指向调用当前静态方法的类. class A { public static $_a = 'Class A'; public static ...

  3. 如何打造一款m3u8视频爬虫

    0.前言 m3u8是一种很常见的网页视频播放器的视频源,比如说中国大学MOOC中课程就是使用了该种视频格式. 随便打开一门课程,就可以发现在网络请求中存在一个m3u8的文件,在preview中预览,它 ...

  4. web服务,ftp服务以及共享实现

    在开始服务前一定要确保可以ping通外网,在虚拟机联网但ping 不通外网下 确认vim /etc/sysconfig/network-scripts/ifcfg-ens33 (nmcli conne ...

  5. 配置k8s集群context-rbac实践

    说明 在openshift环境中,可以通过oc project {project_name}命令来切换project,那么在k8s中式如何切换namespace的呢?(ocp的project即相当于k ...

  6. 图解 Spring:HTTP 请求的处理流程与机制【2】

    2. HTTP 请求在 Web 容器中的处理流程 Web 容器以进程的方式在计算机上运行,我们知道进程是系统资源分配的最小单元,线程是系统任务执行的最小单元.从这个角度看,Web 容器就像是邮包收件人 ...

  7. 如何在VMware下通过挂载系统光盘搭建本地yum软件仓库

    1.打开自己VMware软件中的虚拟机 2.输入用户名root密码登陆进去 3.打开 应用程序----收藏-----终端 4.首先回到根目录,输入cd ..(中间有空格) 5.创建一个名称为swlaa ...

  8. num += num 与 num = num+ num

    a = 100def test(num): num += num print(num) test(a)print(a) 200100 这里 num += num 与 num = num+ num 不能 ...

  9. ViewGroup dispatchTouchEvent方法中 mFirstTouchTarget标志是否为空的含义

    在ViewGroup dispatchTouchEvent方法中首次出现mFirstTouchTarget的语句为: if (actionMasked == MotionEvent.ACTION_DO ...

  10. ajax加载引起瀑布流布局堆叠

    jQuery 瀑布流使用ajax加载数据库图片url ,ajax每次请求到的数据不变时,瀑布流效果没问题. 但当请求到的数据变化时,瀑布流图片格式会重叠 或者相隔很远等等的格式问题,这是由于图片加载是 ...