02-Dockerfile的基本使用
1. FROM
作用:指定基础镜像
使用:FROM 镜像名
demo:
FROM mysql
FROM mysql:5.6
2. RUN
作用:指令是用来执行命令行命令的
使用:
shell格式:RUN命令,就跟直接在命令行输入命令一样
demo:RUN echo '<h1>Hello, Docker!</h1>' > /usr/share/nginx/html/index.html
exec格式:RUN ['可执行文件', '参数1', '参数二']
3. MAINTAINER
作用:维护者的信息
使用:MAINTAINER <name>
demo:MAINTAINER 萌新瑟瑟发动
4. ADD
作用:将本地文件添加到容器中 压缩包类型的文件会自动解压(网络文件不会解压),可以访问网络
使用:ADD 本地文件 虚拟机路径
5. COPY
作用:功能类似ADD 但是不能解压和访问网络资源
使用:COPY 本地文件 虚拟机路径
6. CMD
作用:构建容器后调用,也就是在容器启动的时候才进行调用
使用:
CMD ['executable', 'param1', 'param2'] # 执行可执行的软件 优先
CMD ['param1', 'param2'] # 设置ENTPYPOINT,直接调用 ENTPYPOINT语法 + 参数
CMD command parm1, parm2 # 执行shell 内部命令
注意:
CMD 指定容器启动时执行的命令
RUN 指定镜像构建所执行的命令
7. ENV
作用:设置环境变量
使用:
ENV <key> <value> # <key>之后所有的部分都会被当成value的一部分
ENV <key>=<value> # 可以设置多个变量每个变量为一个key=value的键值对,若其中<key>包含空格可以使用\ 进行转译。 也可以使用'' 标志,另外 \ 可以用于换行
8. EXPOSE
作用:指定外界交互端口
使用:EXPOSE <port> <port> # 主机端口/tcp 虚拟机端口/tcp 注: /tcp 可选
9. VOLUME
作用:用于指定持久化目录
使用:
VOLUME ["/var/www", "/var/log/apache2", "/etc/apache2"]
注:一个卷可以存在于一个或多个容器的指定目录,该目录可以绕过联合文件系统,并具有以下功能:
1、卷可以容器间共享和重用
2、容器并不一定要和其它容器共享卷
3、修改卷后会立即生效
4、对卷的修改不会对镜像产生影响
5、卷会一直存在,直到没有任何容器在使用它
10. WORKDIR
作用:工作路径,类似linux命令的 cd
使用:WORKDIR <path>
注意:通过WORKDIR设置工作目录后,在Dockerfile 其后的命令RUN、CMD等命令就在此目录下执行。在使用docker run 运行容器时,可以通过 - w 参数覆盖构建时所设置的工作目录
11. USER
作用:指定运行容器时的用户名或 UID,后续的 RUN 也会使用指定用户。使用USER指定用户时,可以使用用户名、UID或GID,或是两者的组合。当服务不需要管理员权限时,可以通过该命令指定运行用户。并且可以在之前创建所需要的用户
使用:
USER user
USER user:group
USER uid
USER uid:gid
USER user:gid
USER uid:group
12. ARG
作用:用于指定传递给构建运行时的变量
使用:ARG <name>[==<default value>]
02-Dockerfile的基本使用的更多相关文章
- Docker入门02——Dockerfile详解
基本示例 FROM MAINTAINER LABEL RUN ADD COPY CMD ENTRYPOINT ENV EXPOSE VOLUME WORKDIR USER ARG 基本示例 # Thi ...
- docker1
Docker笔记 1, https://gitlab-demo.com Docker官网:https://docs.docker.com/install/overview/ 有两个版本: Docker ...
- 利用 Docker 构建一个简单的 java 开发编译环境
目前 Java 语言的版本很多,除了常用的 Java 8,有一些遗留项目可能使用了 Java 7,也可能有一些比较新的的项目使用了 Java 10 以上的版本.如果想切换自己本地的 Java 开发环境 ...
- 使用Dockerfile创建ssh服务的镜像02
使用Dockerfile创建ssh服务的镜像02 1:创建工作目录---一个镜像的所有文件都放这个目录下 ubuntu@ubuntu:~$ mkdir sshd_ubuntu ubuntu@ubunt ...
- 分析Mysql 5.6的Dockerfile
Docker官方的Mysql镜像的Dockerfile托管在Github上,地址如下: https://github.com/docker-library/mysql/tree/5836bc9af9d ...
- Centos7安装Docker 基于Dockerfile 搭建httpd运行环境
Centos7安装Docker 基于Dockerfile 搭建httpd运行环境 docker docker搭建 docker build 本文档完成目标内容如下 使用Docker搭建http服务器一 ...
- 基于docker/dockerfile实现redis主从复制
今天我们来搭建基于docker实现redis主从复制集群 为什么要使用redis集群模式? Redis可以说是内存数据库,mysql的数据库是真实存储在硬盘里的,因此,redis的读取速度要比mysq ...
- Docker:dockerfile自动构建镜像 [六]
一.手动docker镜像的缺点 相对于手动制作的docker镜像,使用dockerfile构建的镜像有以下优点: 1.dockerfile只有几kb,便于传输 2.使用dockerfile构建出来的镜 ...
- Docker:dockerfile构建php项目 [八]
一.把项目封装成docker镜像的步骤 把项目封装成docker镜像的步骤: 1.先运行一个基础容器,手动制作docker镜像 2.编写dockerfile,构建镜像 3.测试运行 二.dockerf ...
- docker 14 dockerfile自定义mycentos
Base镜像(scratch) Docker Hub中99%的镜像是通过在base镜像中安装和配置需要的软件构建出来的.也就是说base镜像是所有其他镜像的鼻祖. hub默认centos镜像是什么情况 ...
随机推荐
- MySQL错误修复:Table xx is marked as crashed and last (automatic?) repair failed
问题一 Table xx is marked as crashed and last (automatic?) repair failed 有开发找到我,说数据库坏了,连不上数据库,看了下 MySQL ...
- CDR简单制作透明字体【6·18特惠倒计时3天!】
将图片剪贴到文字中是平面设计常用的一种处理方法之一,一般是将图片置入到该文字,且图片的外轮廓是沿着文字的形状剪贴的,这种处理手法被广泛应用于排版设计中.本教程结合蒙版功能加阴影效果做出特殊的视觉效果. ...
- C++基础知识篇:C++ 常量
常量是固定值,在程序执行期间不会改变.这些固定的值,又叫做字面量. 常量可以是任何的基本数据类型,可分为整型数字.浮点数字.字符.字符串和布尔值. 常量就像是常规的变量,只不过常量的值在定义后不能进行 ...
- 使C语言实现面向对象的三个要素,你掌握了吗?
- java实验作业类的定义与描述
1 //1三角形的定义与描述 2 package test; 3 4 public class sjx { 5 private double a,b,c; 6 7 public sjx(double ...
- 使用ssh远程连接命令行系统
1.进入shell窗口 2.ssh+用户名+@+ip 例如:ssh root@39.96.58.107 3.输入密码
- JAVA中删除文件夹下及其子文件夹下的某类文件
##定时删除拜访图片 ##cron表达式 秒 分 时 天 月 ? ##每月1日整点执行 CRON1=0 0 0 1 * ? scheduled.enable1=false ##图片路径 filePat ...
- Android多触点总结
文章部分内容参考: http://blog.csdn.net/barryhappy/article/details/7392326 总结: 1. event.getX()可以得到x的坐标,里面的参数0 ...
- 关于Django的序列化问题。serializers
在DRF框架里,ModelSerializers是一个重要的组件.大大的帮组我们节省了数据序列化的过程,真的可以说是良心产品.接手的这个项目用的Django,前人的代码都是手动序列化的,为了保证风格的 ...
- day010|python之装饰器
装饰器02 目录 装饰器02 1 装饰器的语法糖 1.1 定义 1.2 基本使用 2 有参装饰器 2.1 基本用法 2.2 示例 3叠加多个装饰器 3.1 基本用法 3.2 示例 4 wraps装饰器 ...