Dockerfile常用指令及使用
Dockerfile常用指令及使用
1. dockerfile介绍

2. Dockerfile常用指令
| 指令 | 描述 |
|---|---|
| FROM | 构建新镜像是基于哪个镜像 |
| MAINTAINER | 进行维护者姓名或邮箱地址 |
| RUN | 构建镜像时运行的shell命令 |
| ENV | 设置环境变量 |
| USER | 为RUN、CMD和ENTRYPOINT执行命令指定运行用户 |
| EXPOSE | 声明容器运行的服务端口 |
| HEALTHCHECK | 容器中服务器健康检查 |
| WORKDIR | 为RUN、CMD、ENTRYPOINT、COPY和ADD设置工作目录 |
| ENTRYPOINT | 运行容器时执行,如果有多个CMD指令,最后一个生效 |
| CMD | 运行容器时执行,如果有多个CMD指令,最后一个生效 |
| ADD | 添加文件包或文件,带有解压的功能 |
| COPY | 单纯复制文件,或文件夹 |
| LABEL | 标签 |
2.1 FROM指令
基本语法
FROM <image>
FROM <image>:<tag>
使用案例
# base image
FROM centos
2.2 MAINTAINER指令
基本语法
MAINTAINER <name>
使用案例
# MAINTAINER
MAINTAINER shichao@scajy.cn
2.3 run指令
基本语法
run <要执行的命令>
run <command> (shell模式)
run [ "executable", "param1", "param2" ] (exec模式)
使用案例
run <command> (shell模式)
/bin/sh -c command
CMD /bin/sh -c 'nginx -g "daemon off;"'
run [ "executable", "param1", "param2" ] (exec模式)
run ["/bin/bash" , "-c", "nginx -g daemon off" ]
2.4 expose指令
基本语法
expose <prot> [<port>...]
使用案例
EXPOSE 80
2.5 cmd命令
基本语法
cmd [ "executable" , "param1" , "param2" ] (exec模式)
cmd command param1 param2 (shell模式)
使用案例
CMD /bin/sh -c 'nginx -g "daemon off;"'
2.6 entrypoint指令
基本语法
cmd [ "executable" , "param1" , "param2" ] (exec模式)
cmd command param1 param2 (shell模式)
使用案例
ENTRYPOINT ["nginx"]
2.7 ADD指令
基本语法
ADD <"src"> ...<dest>
ADD["<src>"..."<dest>"] (适用于文件路径中有空格的情况) COPY <src>...<dest>
COPY [ "<src>"..."<dest>" ] (适用于文件路径中有空格的情况)
使用案例
ADD nginx-1.12.2.tar.gz /usr/local/src COPY index.html /usr/local/nginx/html/ #执行结果
[root@1-230 nginx]# curl 192.168.0.230:8082
ni hao yello
2.8 VOLUME指令
基本语法
volume ["/data"]
2.9 workdir指令
基本语法
WORKDIR /path/to/workdir
使用案例
# change dir to /usr/local/src/nginx-1.12.2
WORKDIR /usr/local/src/nginx-1.12.2
2.10 user指令
基本语法
USER NGINX
USER user USER uid
USER user:group USER uid:gid
USER user:gid user uid:group
2.11 ONBUILD指令
基本语法
ONBUILD [INSTRUCTION]
3. 构建镜像
docker build镜像
Usege:docker build [OPTIONS] PATH | URL | - [flags]
OPTIONS:
-t:--tag list #镜像名称
-f:--flie string #指定dockerfile文件位置 案例:
docker build .
docker build -t test/v1 .
docker build -t test/v1 -f /path/Dockerfile
docker build -t test/v1 http://xxxx.example.com/Dockerfile
Dockerfile常用指令及使用的更多相关文章
- 第 3 章 镜像 - 016 - Dockerfile 常用指令
Dockerfile 常用指令 1.FROM 指定base镜像2.MAINTAINER 设置镜像的作者,可以为任意字符串3.COPY 从build context 复制到镜像 COPY 支持两种形式: ...
- Dockerfile 常用指令 - 每天5分钟玩转 Docker 容器技术(16)
是时候系统学习 Dockerfile 了.下面列出了 Dockerfile 中最常用的指令,完整列表和说明可参看官方文档. FROM指定 base 镜像. MAINTAINER设置镜像的作者,可以是任 ...
- Dockerfile 常用指令
下面列出了 Dockerfile 中最常用的指令,完整列表和说明可参看官方文档. FROM指定 base 镜像. MAINTAINER设置镜像的作者,可以是任意字符串. COPY将文件从 build ...
- 转 Dockerfile 常用指令 - 每天5分钟玩转 Docker 容器技术(16)
是时候系统学习 Dockerfile 了. 下面列出了 Dockerfile 中最常用的指令,完整列表和说明可参看官方文档. FROM指定 base 镜像. MAINTAINER设置镜像的作者,可以是 ...
- Dockerfile常用指令说明
具体解释:https://blog.csdn.net/achenyuan/article/details/80231922 将dockerfile文件和生成好的jar 使用ftp工具上传到linux服 ...
- Dockerfile常用指令
FROM 构建的新镜像基于那个镜像 , FROM ubuntu:14 MAINTAINER 镜像维护者姓名或邮箱地址 RUN CMD EXPOSE 声明容器运行服务的端口 ENV ADD 拷贝文件 ...
- Docker学习笔记_Dockerfile常用指令
Dockerfile常用指令
- Docker的使用初探(一):常用指令说明
目录 Docker的使用初探(一):常用指令说明 为什么要用Docker Docker的安装与简单使用 国内镜像加速 常用指令 Docker的使用初探(一):常用指令说明 前几个星期实践的了,再不记录 ...
- Docker Compose 配置文件常用指令
Docker Compose 配置文件常用指令 YAML文件格式及编写注意事项 YAML是一种标记语言很直观的数据序列化格式,可读性高.类似于XML数据描述语言,语法比XML简单的很多. YAML数据 ...
随机推荐
- Codeforces 1337C Linova and Kingdom
题意 给你一颗有根树,你要选择\(k\)个点,最大化\(\sum_{i \in S} val_i\),其中\(S\)是被选点的集合,\(val_i\)等于节点\(i\)到根的路径上未被选择点的个数. ...
- Jmeter 断言-检查点
1. http请求/添加/断言/响应断言 2. 输入一个返回数据里没有的参数 3.果然报错了 断言的作用是用来查看接口文档里是否有自己想要的数据!
- ASP.NET Core 进程内与进程外的性能对比
ASP.NET Core 进程内与进程外的性能对比 本文内容是<深入去浅出ASP.NET Core>提供的扩展内容,毕竟在书里说进程内外的性能说明对比,对于初学者而言,稍微复杂了点. 我在 ...
- Mybatis源码学习第七天(PageHelper分析)
其实我本来是不打算写这个PageHelper的,但是后来想了想,还是写了吧!现在市场用Mybatis的产品分页应该差不多都是用PageHelper来实现的,毕竟Mybatis的分页rowbound.. ...
- Java的String.matches不区分大小写正则表达式匹配示例
需求:输入的cmd符合create,listall,delete三种形式,不用区分大小写 写成函数: public static boolean isAllowed3Cmd(String cmd) { ...
- MySQL互联网业务使用建议
一.基础规范 表存储引擎必须使用InnoDB 表字符集默认使用utf8,必要时候使用utf8mb4 解读: (1)通用,无乱码风险,汉字3字节,英文1字节 (2)utf8mb4是utf8的超集,有存储 ...
- java中整型、浮点型、char型扩展
怎么区分是什么进制? 二进制:0b开头,eg: int i = 0b10; 八进制:0开头,eg: int k = 010; 十进制: 十六进制:0x开头,eg: int j = 0x10; 浮点数类 ...
- Fliptile(POJ 3279)
原题如下: Fliptile Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 16494 Accepted: 6025 D ...
- Axios源码深度剖析
Axios源码深度剖析 - XHR篇 axios 是一个基于 Promise 的http请求库,可以用在浏览器和node.js中,目前在github上有 42K 的star数 分析axios - 目录 ...
- 熬夜23天吃透,九大核心专题,成功收割了阿里、百度、美团3家offer
前言 今年受疫情影响非常大,春招和金三银四都要比往年来得更迟一些.春招结束之后,我特意把自己的面试经历顺了顺,总结出了不少的经验.对了,这次一共收割了3个大厂offer,分别是蚂蚁金服.美团和网易,特 ...