docker file 笔记
FROM # FROM scratch, FROM centos, FROM ubuntu:latest
LABEL
RUN # 每运行一次RUN,image都会生成新的一层,为了美观,避免无用分层,尽量合并多条命令为一条, 比如 yum install vim && yum install gcc, 反斜线换行,最后清理cache rm -rf /var/lib/apt/lists/*
WORKDIR # 设定当前目录,类似linux cd, 没有目录会自动创建目录, 尽量是用绝对路径,不要使用RUN cd
ADD # 添加文件, 和copy类似,但是add可以解压缩, 大部分情况COPY优于ADD, 添加远程文件,使用curl或者wget
ENV # 设置环境变量, 增加可维护性
VOLUME
EXPOSE # 暴露端口
CMD # 设置容器启动后默认执行的命令; 如果docker run指定了其它命令,CMD命令会被忽略; 如果定义了多个CMD, 只有最后一个会执行
ENTRYPOINT # 容器启动时运行的命令; 容器以应用程序或者服务的形式运行; 不会被忽略,一定会执行; 最佳实践: 写一个shell脚本座位entrypoint, 很多官方的docker都用entrypoint启动服务
RUN 和 CMD有shell格式和Exec格式
shell格式
RUN apt-get install -y vim
CMD echo "hello world"
Exec格式
RUN ["yum", "install", "-y", "vim" ]
CMD ["bin/echo", "hello world"]
Shell格式,所有的命令,在一个shell里面执行,但是Exec格式,只是单纯执行了一个命令,这个命令的环境变量不受上一条命令的影响
ENTRYPOINT和CMD配合,可以在docker run的时候接受参数
FROM ubuntu:14.04
RUN apt-get update && apt-get install -y stress
ENTRYPOINT ["/usr/bin/stress"]
CMD [] # 这里可以接收docker run 传的参数
docker build -t test/command .
docker run test/command --vm 1 --verbose # --vm 1 --verbose即是接收的参数
docker file 笔记的更多相关文章
- Docker入门笔记
Docker入门笔记 随笔记录初学Docker遇到的问题, 以免下次再犯. 本机系统Ubuntu18.04 安装 Docker有2个版本 Community Edition (CE) 社区版(免费) ...
- Docker学习笔记 — 配置国内免费registry mirror
Docker学习笔记 — 配置国内免费registry mirror Docker学习笔记 — 配置国内免费registry mirror
- docker学习笔记1 -- 安装和配置
技术资料 docker中文官网:http://www.docker.org.cn/ 中文入门课程:http://www.docker.org.cn/book/docker.html docker学习笔 ...
- Docker学习笔记之一,搭建一个JAVA Tomcat运行环境
Docker学习笔记之一,搭建一个JAVA Tomcat运行环境 前言 Docker旨在提供一种应用程序的自动化部署解决方案,在 Linux 系统上迅速创建一个容器(轻量级虚拟机)并部署和运行应用程序 ...
- docker~学习笔记索引
回到占占推荐博客索引 使用docker也有段时间了,写了不少文章与总结,下面把它整理个目录出来,方便大家去学习与检索! docker~学习笔记索引 docker~linux下的部署和基本命令(2017 ...
- Docker学习笔记 - Docker容器内部署redis
Docker学习笔记(2-4)Docker应用实验-redist server 和client的安装使用 一.获取redis容器(含客户端和服务端) 二.创建服务端容器 1.在终端A中运行redis- ...
- docker学习笔记(一)—— ubuntu16.04下安装docker
docker学习笔记(一)—— ubuntu16.04下安装docker 原创 2018年03月01日 14:53:00 标签: docker / ubuntu 1682 本文开发环境为Ubuntu ...
- docker学习笔记二
知识点: 1)手动构建镜像 2)Dockerfile快速构建镜像 阿里云yum源https://opsx.alibaba.com/mirror 镜像制作nginx镜像实例 创建并运行centos容器 ...
- docker镜像的创建方法docker file方式
什么是docker file文件? 简单来说,docker file文件就是一个命令文本集合,容来记录创建docker镜像的步骤 快速入门: 1.新建一个docker file文件dockerfile ...
随机推荐
- 2020牛客NOIP赛前集训营-提高组(第三场)C-牛半仙的妹子Tree【虚树,最短路】
正题 题目链接:https://ac.nowcoder.com/acm/contest/7609/C 题目大意 给出\(n\)个点的一棵树,\(m\)个时刻各有一个操作 标记一个点,每个点被标记后的每 ...
- span标签的巧用
前言: 用struts的标签结合<td>标签将后台数据在表格里渲染了出来,目前需求是需要将两个状态组合在一起显示 解决:通过span标签在td里的套用可以实现 <logic:notE ...
- Go语言中的并发编程
并发是编程里面一个非常重要的概念,Go语言在语言层面天生支持并发,这也是Go语言流行的一个很重要的原因. Go语言中的并发编程 并发与并行 并发:同一时间段内执行多个任务(你在用微信和两个女朋友聊天) ...
- 解决报错:Unable to process Jar entry [org/springframework/jmx/export/annotation/*****]
情况说明:从gitub上clone的maven项目,pox.xml配置中的依赖,自己的repository都有,所以正常update project ,正常clean,install,整个过程无报错 ...
- Android12系统源码分析:NativeTombstoneManager
Android12系统源码分析:NativeTombstoneManager 概述 android12新增的system_server进程(LocalService)本地服务,用于管理native t ...
- Django整理(一) - 项目和应用创建及运行
一.项目组织结构 · 一个Project包含有多个App · 一个App就是一个Python包,就代表一个功能模块,比如: 用户模块,商品模块等 .各个功能模块间可以保持相对的独立 . ...
- Spring动态代理的生成-如何判断是使用JDK动态代理还是CGlib代理
前言 在上一篇文章中讲到了Spring是如何获取对应的Bean的增强,然后本次主要讲解一下Spring如何在获取到增强后创建Spring代理的. 在步入正题之前先给大家看一下Spring创建代理的大致 ...
- 6.堆和GC
一. 堆和GC介绍 1.java堆的特点 <深入理解java虚拟机>是怎么描述java堆的 Java堆(Java Heap)是java虚拟机所管理的内存中最大的一块 java堆被所有线程共 ...
- 2021年3月-第02阶段-前端基础-HTML+CSS阶段-Day02
HTML5 第二天 一.rotate 2d旋转指的是让元素在2维平面内顺时针旋转或者逆时针旋转 使用步骤: 给元素添加转换属性 transform 属性值为 rotate(角度) 如 transfor ...
- Go语言核心36讲(Go语言进阶技术三)--学习笔记
09 | 字典的操作和约束 至今为止,我们讲过的集合类的高级数据类型都属于针对单一元素的容器. 它们或用连续存储,或用互存指针的方式收纳元素,这里的每个元素都代表了一个从属某一类型的独立值. 我们今天 ...