Dockerfile

什么是Dockerfile?

Dockerfile是由一系列命令和参数构成的脚本,这些命令应用于基础镜像并最终创建一个新的镜像。

  • 对于开发人员:可以为开发团队提供一个完全一致的开发环境
  • 对于测试人员:可以直接拿开发时构建的镜像或者通过Dockerfile文件构建一个新的镜像开始工作
  • 对于运维人员:在部署时,可以实现应用的无缝移植

常用的几个命令

命令作用
FROM image_name:tag定义了使用哪个基础镜像启动构建流程
MAINTAINER user_name声明镜像的创建者
ENV key value设置环境变量(可以写多条)
RUN command是dockerfile的核心部分(可以写多条)
ADD soure_dir/file dest_dir/file将宿主机的文件复制到容器内,如果是一个压缩文件,将会在复制后自动解压
COPY soure_dir/file dest_dir/file与ADD相似,但是如果有压缩文件并不能解压
WORKDIR path_dir设置工作目录

配置指令如下

ARG		 					定义创建过程中使用的变量
FROM 						指定所创建镜像的基础镜像
LABEL 						为生成的镜像添加元数据标签信息
EXPOSE 						声明镜像内服务监听的端口
ENV 						指定环境变量
ENTRYPOINT 					指定镜像的默认入口命令
VOLUME 						创建一个数据卷挂载点
USER 						指定运行容器时的用户名或UID
WORKDIR 					配置工作目录
ONBUILD						创建子镜像时指定自动执行的操作指令
STOPSIGNAL 					指定退出的信号值
HEALTHCHECK 				配置所启动容器如何进行健康检查
SHELL 						指定默认shell类型

操作指令如下

RUN 	运行指令命令
CMD 	启动容器时指定默认执行的命令
ADD 	添加内容到镜像
COPY 	复制内容到镜像

Dockerfile举例

文件名必须为Dockerfile

FROM centos:7
MAINTAINER pasiyu
WORKDIR /usr
RUN mkdir /usr/local/java
ADD jdk-8u171-linux-x64.tar.gz /usr/local/java/
ENV JAVA_HOME=/usr/local/java/jdk1.8.0_171

执行命令:
docker build -t='jdk1.8' .
-t:指定镜像名称
.:代表指定Dockerfile的文件夹,.表示当前文件夹

举例详情说明2:
FROM centos
#作者和邮箱
MAINTAINER szy<1063164661@qq.com>
#把宿主机中的c.txt拷贝到容器/usr/local目录下
COPY c.txt /usr/local/cincontainer.txt
#把java和tomcat添加到/usr/local目录下
ADD jdk-8u102-linux-x64.tar.gz /usr/local/
ADD apache-tomcat-8.5.39.tar.gz /usr/local/
#安装vim编辑器
RUN yum -y install vim
#设置环境变量
ENV MYPATH /usr/local
#设置工作目录
WORKDIR $MYPATH
#配置java与tomcat的环境变量
ENV JAVA_HOME /usr/local/jdk1.8.0_102
#dt.jar运行环境的类库,tools.jar是工具类库
ENV CLASSPATH $JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
#CATALINA_HOME是Tomcat的安装目录
ENV CATALINA_HOME /usr/local/apache-tomcat-8.5.39
#CATALINA_BASE是Tomact的工作目录
ENV CATALINA_BASE /usr/local/apache-tomcat-8.5.39
ENV PATH $PATH:$JAVA_HOME/bin:$CATALINA_HOME/lib:$CATALINA_BASE/bin
#容器运行时监听的端口
EXPOSE 8080
CMD /usr/local/apache-tomcat-8.5.39/bin/startup.sh && tail -F /usr/local/apache-
tomcat-
8.5.39/bin/logs/catalina.out
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值