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 ...
随机推荐
- 鸿蒙内核源码分析(内存映射篇) | 虚拟内存虚在哪里 | 百篇博客分析OpenHarmony源码 | v15.03
百篇博客系列篇.本篇为: v15.xx 鸿蒙内核源码分析(内存映射篇) | 虚拟内存虚在哪里 | 51.c.h .o 内存管理相关篇为: v11.xx 鸿蒙内核源码分析(内存分配篇) | 内存有哪些分 ...
- centos7 kubeadm 搭建k8s
Centos 7 搭建 kubernetes 集群环境 一.介绍 本次是centos7 搭建kubernetes1.15.9 通过kubeadm 的形式搭建 二.准备 > centos 7 (镜 ...
- ARC106E-Medals【hall定理,高维前缀和】
正题 题目链接:https://atcoder.jp/contests/arc106/tasks/arc106_e 题目大意 \(n\)个员工,第\(i\)个在\([1,A_i]\)工作,\([A_i ...
- Css预编译(Sass&&Less)
目录 Less与Sass是css的预处理技术 而CoffeeScript.TypeScript则是javascript的预处理技术. Less与Sass是css的预处理技术 而CoffeeScript ...
- Python - poetry(1)包管理利器的入门介绍
Python 虚拟环境详解 https://www.cnblogs.com/poloyy/p/15266382.html poetry 官方介绍 github:https://github.com/p ...
- vue使用AES.js
AES加密的使用 对数据传输加密.解密处理---AES.js 第一步: 在vue中安装crypto-js依赖 npm install crypto-js --save-dev 第二步: 在static ...
- Python内置高阶函数map()
map()函数map()是 Python 内置的高阶函数,它接收一个函数 f 和一个 list,并通过把函数 f 依次作用在 list 的每个元素上,得到一个新的 list 并返回. 例如,对于lis ...
- Visual Studio Debug only user code with Just My Code
Debug only user code with Just My Code By default, the debugger skips over non-user code (if you wan ...
- Linux中检查字符串是否为合法IP地址的shell脚本
#!/bin/bash #判断IP地址是否为有效IP CHKECK_IP () { CHECK_STEP1=`echo $1 | awk -F"." '{print NF}'` i ...
- 嵌入式大佬给你分析stm32串口
stm32作为现在嵌入式物联网单片机行业中经常要用多的技术,相信大家都有所接触,今天这篇就给大家详细的分析下有关于stm32的出口,还不是很清楚的朋友要注意看看了哦,在最后还会为大家分享有些关于stm ...