【docker】Dockerfile
【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的更多相关文章
- 【Docker】Dockerfile使用apt-get来安装jdk
前面谈过使用wget来从oracle下载jdk安装文件是使用了cookie欺骗的方法来越过身份验证来使用Dockerfile在ubuntu内安装oracle版本的jdk的. 然而正道还是用apt-ge ...
- 【Docker】Docker概述
[Docker] Docker可以说是近几年非常热门的技术之一了.不管是别人敦促我还是从自己的想法来说,都觉得Docker这玩意儿肯定是要好好学习一下的,无奈没啥时间专门播出来给Docker,一直以来 ...
- 【Docker】(5)---springCloud注册中心打包Docker镜像
[Docker](5)---springCloud注册中心打包Docker镜像 上一篇文章讲了将镜像推送到远处私有仓库,然后再从私有仓库拉取该镜像的过程.而这里的镜像是直接从Docker拉取的. 所以 ...
- 【Devops】【docker】【CI/CD】2.docker启动jenkins环境+安装必要的插件
[注意:]jenkins的docker镜像,需要从官网进入直接获取,其他地方获取到的docker镜像,可能因为Jenkins版本过低,导致后续插件安装失败等问题!!! ================ ...
- 【Docker】(4)搭建私有镜像仓库
[Docker](4)搭建私有镜像仓库 说明 1. 这里是通过阿里云,搭建Docker私有镜像仓库. 2. 这里打包的镜像是从官网拉下来的,并不是自己项目创建的新镜像,主要测试功能 一.搭建过程 首先 ...
- 【Docker】(2)---仓库、镜像、容器
[Docker](2)---仓库.镜像.容器 学习Docker,我觉得首先要了解的是仓库.镜像.容器到底是什么,他们有什么区别. 一.通俗理解 1.Docker 镜像 (images) 容器运 ...
- 【ELK】【docker】6.Elasticsearch 集群启动多节点 + 解决ES节点集群状态为yellow
本章其实是ELK第二章的插入章节. 本章ES集群的多节点是docker启动在同一个虚拟机上 ====================================================== ...
- 【Docker】Docker 目录
目录: [Docker]第一篇 Docker的初始化安装部署 [Docker]第二篇 Docker镜像管理 [Docker]第三篇 Docker容器管理 [Docker]第四篇 Docker仓库管理
- 【ELK】【docker】【elasticsearch】1. 使用Docker和Elasticsearch+ kibana 5.6.9 搭建全文本搜索引擎应用 集群,安装ik分词器
系列文章:[建议从第二章开始] [ELK][docker][elasticsearch]1. 使用Docker和Elasticsearch+ kibana 5.6.9 搭建全文本搜索引擎应用 集群,安 ...
随机推荐
- ViewPage+Fragment的使用用法
一.概述 从前面几篇文章,我们知道,实现ViewPager是要有适配器的,我们前面用的适配器是PagerAdapter,而对于fragment,它所使用的适配器是:FragmentPagerAdapt ...
- Rust 入门 (三)_上
这部分我们学习 rust 语言的 变量.数据类型.函数.注释.流程控制 这五个方面的内容.本文我们介绍前两个内容,下一篇文章介绍后三个内容. 变量 默认情况下,rust 语言中声明的变量是不可变的,比 ...
- 【NHOI2018】拆除桥墩
[解题思路] 求最窄的地方的最大值,可以推测此题用二分答案. 那么二分答案的check函数该如何写呢? 由于通航能力是由最窄的地方决定的,那么就要保证每个桥墩之间的距离都大于或等于二分的答案,那么只要 ...
- 第9场 E-All men are brothers(并查集)
题目链接 题意:n个人,m次操作,每次操作使得两个人(x,y)成为朋友,朋友的关系是可以传递的,计算执行每次操作后,选择四个人两两都不是朋友的不同方案的数目. 数据范围:(n <= 100000 ...
- windows下python IDE安装注意事项&Python安装及编辑器UliPad安装
python下载地址: http://www.python.org/download/releases/2.7.6/ 我自己用的是ulipad ,但是注意 ulipad和python的版本一定要配 ...
- rep()函数简介
rep()函数:重复 rep(x,...) rep.int(x,times) rep_len(x,length.out) ·x:一个向量(vector),一个因子(factor),一个POSIXct或 ...
- 高并发编程-CountDownLatch深入解析
要点解说 CountDownLatch允许一个或者多个线程一直等待,直到一组其它操作执行完成.在使用CountDownLatch时,需要指定一个整数值,此值是线程将要等待的操作数.当某个线程为了要执行 ...
- Lua的面向对象,封装,继承,多态
概述 我们总所周知对象是由属性和方法组成的,要用lua要描述一个对象,也必然要有这两个特性,属性和方法.lua的基本结构是table,所以Lua的类,其实都是table,因为它可以存储普通的变量又可以 ...
- MySQL数据库开发的36条原则
欢迎添加华为云小助手微信(微信号:HWCloud002 或 HWCloud003),验证通过后,输入关键字"加群",加入华为云线上技术讨论群:输入关键字"最新活动&quo ...
- [动图演示]Redis 持久化 RDB/AOF 详解与实践
Redis 是一个开源( BSD 许可)的,内存中的数据结构存储系统,它可以用作数据库.缓存和消息中间件.它支持的数据类型很丰富,如字符串.链表.集 合.以及散列等,并且还支持多种排序功能. 什么叫持 ...