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镜像是什么情况 ...
随机推荐
- git设置个人信息
git config --global user.name "username" 设置下自己提交的用户名 git config --global user.email " ...
- 用Camtasia来快速给录制的视频添加水印
在日常生活中,视频的流行度越来越高,各种短视频的软件蜂拥上市,所以越来越多的人走上了自媒体的道路,在这条路上,谁的视频更加的精致,谁才能获得更多的关注度,相应的也能增加自己的人气. 但是在制作视频的过 ...
- 「LOJ 6287」诗歌
题面 LOJ 6287 Solution 枚举中间点\(j\),题目即求是否存在\(m\)使\(a[j]-m\)与\(a[j]+m\)分别在\(j\)两侧. 对于\(j\)左侧任意一个点\(i\),都 ...
- H5系列之新input
虽说H5 新填了几个很方便的input 类型,但是吧,想法是美好的,但是现实很残酷,兼容性不太好.基本只有google浏览器能用.但是既然出了,那么就要了解他,知道有这么一个东西就好. input类型 ...
- Java中CLASS_PATH与注释的使用
一.CLASS_PATH的使用 我们在安装jdk的时候,通常情况下只是在电脑的环境变量中新建一个系统变量JAVA_HOME,这个变量用于储存jdk的/bin文件夹之前路径,然后在path中使用这个系统 ...
- 记XShell无法连接虚拟机中的Linux,但Linux系统中可以连接外网。
如题. 原本设置如下: 本地机IP 为192.168.43.XXX VMWare中"虚拟机网络编辑器"中子网设置为192.168.39.0. 虚拟机中IP为192.168.39.1 ...
- 体育成绩统计/ Score
偏水向,请部分学术控谅解 题目过长,不再描述. 很显然就是一道大模拟对吧,我在这里贡献一下我打此题的思路与过程. 或许有些奇淫巧技可以供一些没有过掉的神犇借鉴一下. 2020.11.26 中午: 昨天 ...
- 顺序结构(C语言基本结构)
顺序结构 1.基本概念 语句执行的顺序与顺序程序书写的顺序一致 特点 a.程序执行的顺序和语句书写的顺序一致 b.有一个数据入口,一个数据出口 顺序结构与四则运算 顺序结构是C语言的基本结构 程序由上 ...
- CentOS下如何用nmon收集系统实时运行状况
#赋予执行权限 chmod +x nmon 执行./nmon可以查看实时的系统状态有提示的,d看磁盘,n看网络,c看cpu #如果不想看实时的,想收集系统长时间运行情况然后分析,可用这个 nohup ...
- Python之【模块】
双层装饰器 一个函数可以被多个装饰器装饰: 多层装饰器的本质是:嵌套: 执行规则是:解释自下而上,执行自上而下 •简单的用户权限验证程序: USE_INFO = {} # 初始化一个字典,用户存放用户 ...