【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. 【SSM Spring 线程池 OJ】 使用Spring线程池ThreadPoolTaskExecutor

    最近做的Online Judge项目,在本地判题的实现过程中,遇到了一些问题,包括多线程,http通信等等.现在完整记录如下: OJ有一个业务是: 用户在前端敲好代码,按下提交按钮发送一个判题请求给后 ...

  2. 力扣(LeetCode)环形链表 个人题解

    给定一个链表,判断链表中是否有环. 为了表示给定链表中的环,我们使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始). 如果 pos 是 -1,则在该链表中没有环. 示例 1: 输入: ...

  3. 领扣(LeetCode)回文链表 个人题解

    请判断一个链表是否为回文链表. 示例 1: 输入: 1->2 输出: false 示例 2: 输入: 1->2->2->1 输出: true 进阶:你能否用 O(n) 时间复杂 ...

  4. Vue导入非模块化的第三方插件功能无效解决方案

    一.问题: 最近在写vue项目时,想引入某些非模块化的第三方插件时,总是发现会有报错.且在与本地运行插件测试对比时发现插件根本没有注入到jQuery中(console.log($.fn)查看当前jq有 ...

  5. 使用不同的C++支持库的模块混合开发时,引发异常展开不正常,抛异常竟引出一个SIGSEGV

    如果你使用gcc对一部分模块进行了GNUMake的编译,这些编译出动态库使用在Gradle编译框架下的项目.那么就有可能出现题目中的情况,使用不同的C++支持库的模块混合开发时,引发异常展开不正常. ...

  6. Mac的Safari安装油猴插件(Tampermonkey)

    Mac的Safari安装油猴插件(Tampermonkey) 官方的AppStore是没有油猴插件(Tampermonkey)的,官方插件不仅少,功能被阉割,相对弱小,还收费.嗯,这很苹果第三方拓展. ...

  7. .NET core3.0 使用Jwt保护api

    摘要: 本文演示如何向有效用户提供jwt,以及如何在webapi中使用该token通过JwtBearerMiddleware中间件对用户进行身份认证. 认证和授权区别? 首先我们要弄清楚认证(Auth ...

  8. Ubuntu 16.04安装ROS Kinetic详细教程 | Tutorial to Install and Configure ROS Kinetic on Ubuntu 16.04

    本文首发于个人博客https://kezunlin.me/post/e2780b93/,欢迎阅读! Tutorial to Install and Configure ROS Kinetic on U ...

  9. mac如何开启两个vmware虚拟机

    转载链接:https://blog.csdn.net/aifore/article/details/87833088

  10. 如何进行Flink项目构建,快速开发Flink应用程序?

    项目模板 Flink应用项目可以使用Maven或SBT来构建项目,Flink针对这些构建工具提供了相应项目模板. Maven模板命令如下,我们只需要根据提示输入应用项目的groupId.artifac ...