什么是Dockerfile
- Dockerfile 是由一系列命令和参数构成的脚本,这些命令应用于基础镜像并最终构建一个新的镜像。
- 对于开发人员:可以为开发团队提供一个完全一致的开发环境。
- 对于测试人员:可以直接拿开发时所构建的镜像或者通过Dockerfile 文件构建一个新的镜像开始工作了。
- 对于运维人员:在部署时,可以实现应用的无缝移植。
Dockerfile 常用命令
命令 | 作用 |
FROM image_name:tag | 定义了使用哪个基础镜像启动构建流程 |
MAINTAINER user_name | 声明镜像创建者 |
ENV key value | 设置环境变量(可以写多条) |
RUN command | 是Dockerfile的核心部分(可以写多条) |
ADD source_dir/file dest_dir/file |
将宿主机文件复制到容器内,如果是一个压缩文件,将会在复制后自动解压 |
COPY source_dir/file
dest_dir/file
|
与ADD相似,但是如果有压缩文件并不能解压 |
WORKDIR path_dir
|
设置工作目录 |
EXPOSE port1 prot2
|
用来指定端口,使容器内的应用可以通过端口和外界交互 |
CMD argument
|
在构建容器时,会被docker run后的argument覆盖 |
ENTRYPOINT
argument
|
和CMD 相似,但是并不会被docker run 指定的参数覆盖 |
VOLUME
|
将本地文件或者其他容器的文件挂载到容器中 |
使用脚本创建jdk镜像
1),创建目录 在usr/local下面
mkdir –p /usr/local/dockerjdk8
2),下载 jdk-8u171-linux-x64.tar.gz 并上传到服务器(虚拟机)中的 /usr/local/dockerjdk8目录,如下
3),在usr.local/dockerjdk8目录下创建 Dockerfile
扫描二维码关注公众号,回复:
10564889 查看本文章
Dockerfile 内容如下
#依赖镜像名称和ID
FROM centos:7
#指定镜像创建者信息
MAINTAINER ITCAST
#切换工作目录
WORKDIR /usr
RUN mkdir /usr/local/java
#ADD 是相对路径jar,把java添加到容器中
ADD jdk-8u171-linux-x64.tar.gz /usr/local/java/
#配置java环境变量
ENV JAVA_HOME /usr/local/java/jdk1.8.0_171
ENV JRE_HOME $JAVA_HOME/jre
ENV CLASSPATH $JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib:$CLASSPATH
ENV PATH $JAVA_HOME/bin:$PATH
如下图
4),在usr/local/dockerjdk8执行构建命令
docker build ‐t='jdk1.8' .
如下执行命令
如下构建成功
5),在docker 查询构建的jdk镜像 使用docker images 命令如下
docker images
6),创建jdk 容器如下
docker run -di --name=tensquare_jdk jdk1.8
jdk8镜像构建完成