项目容器化改造(四)构建基础镜像

项目容器化改造(四)构建基础镜像

  • 基础镜像制作包含内容
  • Dockerfile文件
        • 文件格式
        • 命令详解
        • Docker常用命令
  • 制作基础镜像
        • 编写Dockerfile文件
        • 通过Dockerfile文件构建镜像
        • 验证镜像是否生成

基础镜像制作包含内容

我这里使用的是tomcat7和jdk8,下载好tar包后解压。
PS:这是为项目war包作准备的,如果是用项目jar包,可去掉tomcat
项目容器化改造(四)构建基础镜像_第1张图片

Dockerfile文件

Dockerfile 是一个文本文件,其内包含了一条条的指令(Instruction),每一条指令构建一层,因此每一条指令的内容,就是描述该层应当如何构建。有了 Dockerfile,当我们需要定制自己额外的需求时,只需在 Dockerfile 上添加或者修改指令,重新生成 image 即可,省去了敲命令的麻烦。

文件格式

项目容器化改造(四)构建基础镜像_第2张图片
Dockerfile 分为四部分:基础镜像信息、维护者信息、镜像操作指令、容器启动执行指令。一开始必须要指明所基于的镜像名称,接下来一般会说明维护者信息;后面则是镜像操作指令,例如 RUN 指令。每执行一条RUN 指令,镜像添加新的一层,并提交;最后是 CMD 指令,来指明运行容器时的操作命令。

命令详解

一图胜千言:
项目容器化改造(四)构建基础镜像_第3张图片

Docker常用命令

Docker服务启动、停止、重启:service docker start(stop restart)
显示docker镜像:docker images
删除dokcer镜像:docker rmi -f [imageid]
显示正在运行的容器:docker ps
显示全部容器:docker ps –a
停止容器:docker stop [containerId]
删除容器:docker rm [containerId]
启动容器:docker start [containerId]
下载镜像:docker pull
镜像打tag:docker tag 当前镜像名:TAG 仓库地址/镜像名称:TAG
镜像上传仓库:docker push仓库地址/镜像名称:TAG
进入容器:docker exec -it [containerId] /bin/sh
执行命令:docker exec [containerId] -it [command]
容器控制台日志:docker logs -f [containerId]
复制文件至容器:docker cp /目录/文件名 容器ID:容器目录
复制容器文件至本地:docker cp 容器ID:文件路径 本地路径

制作基础镜像

编写Dockerfile文件

创建文件

touch Dockerfile 

编写文件

#引入虚拟系统作为底层镜像
FROM centos:7
#作者
MAINTAINER kris
#制作时间
ENV REFRESHED_AT 2019-01-13
#设置时区
ENV TZ=Asia/Shanghai
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
#处理编码问题
ENV LANG C.UTF-8
#RUN locale-gen en_US.UTF-8
ENV LANG en_US.UTF-8
ENV LANGUAGE en_US:en
ENV LC_ALL en_US.UTF-8

#切换镜像目录,进入/usr目录
WORKDIR /usr
RUN mkdir testimage
WORKDIR /usr/testimage
#在/usr/下创建jdk目录,用来存放jdk文件
RUN mkdir jdk
#在/usr/下创建tomcat目录,用来存放tomcat
RUN mkdir tomcat

#将宿主机的jdk目录下的文件拷至镜像的/usr/testimage/jdk目录下
ADD jdk1.8.0_144 /usr/testimage/jdk/
#将宿主机的tomcat目录下的文件拷至镜像的/usr/testimage/tomcat目录下
ADD apache-tomcat-7.0.57 /usr/testimage/tomcat/

#切换镜像目录,进入/etc目录
WORKDIR /etc
#在/etc/下创建配置文件目录,用来存放配置文件
RUN mkdir -p testimage/conf/cy

#设置环境变量
ENV JAVA_HOME=/usr/testimage/jdk
ENV JRE_HOME=$JAVA_HOME/jre
ENV CLASSPATH=.:$JRE_HOME/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
ENV PATH=/sbin:$JAVA_HOME/bin:$PATH
ENV TOMCAT_HOME=/usr/testimage/tomcat
ENV CATALINA_HOME=/usr/testimage/tomcat
ENV CATALINA_BASE=/usr/testimage/tomcat

#公开端口
EXPOSE 8090
#设置启动命令
ENTRYPOINT ["/usr/testimage/tomcat/bin/startup.sh"]

通过Dockerfile文件构建镜像

进入dockerfile文件所在目录,执行命令:

docker build -t ${IMAGES_NAME}:$TAG .

${IMAGES_NAME} :镜像名称
$TAG:版本号
在这里插入图片描述
注意:命令后面一个空格一个点,不能缺少。

验证镜像是否生成

项目容器化改造(四)构建基础镜像_第4张图片

docker images

在这里插入图片描述

你可能感兴趣的:(Java)