Docker Dockerfile构建镜像
18、Docker:Dockerfile构建镜像
目标: 掌握Dockerfile构建镜像
18.1 Dockerfile文件
- 前面的课程中已经知道了,要获得镜像,可以从Docker仓库中进行下载。那如果我们想自己开发一个镜像,那该如何做呢?答案是: Dockerfile
- Dockerfile其实就是一个文本文件,由一系列命令和参数构成,Docker可以读取Dockerfile文件并根据Dockerfile文件的描述来构建镜像。
- Dockerfile文件内容一般分为4部分
- 基础镜像信息
- 维护者信息
- 镜像操作指令
- 容器启动时执行的指令
18.2 常用命令
命令 | 作用 |
---|---|
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 | 设置工作目录 |
18.3 构建镜像
# 1、创建目录
mkdir -p /usr/local/dockerjdk8
cd /usr/local/dockerjdk8
# 2、下载jdk-8u171-linux-x64.tar.gz并上传到服务器(虚拟机)中的/usr/local/dockerjdk8目录
# 3、在/usr/local/dockerjdk8目录下创建Dockerfile文件,文件内容如下:
vi Dockerfile
FROM centos:7
MAINTAINER ITCAST
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
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、执行命令构建镜像;不要忘了后面的那个 . (点代表当前目录)
# -t 指定镜像名称
docker build -t='jdk1.8' .
# 5、查看镜像是否建立完成
docker images
/usr/local/dockerjdk8/Dockerfile 文件中的内容:
说明: 创建文件Dockerfile 这里的D必须大写,不能有任何的偏差。
18.4 根据镜像创建容器
基于刚刚创建的镜像 jdk1.8 创建并启动容器进行测试
# 创建并启动容器
docker run -it --name=testjdk jdk1.8 /bin/bash
# 在容器中测试jdk是否已经安装
java -version
Memorial Day is 511 days |