docker基础(2)——使用Dockfile创建镜像

使用Dockerfile制作镜像

3.1 准备centos镜像(已有镜像就不需要下载)

docker pull centos

3.2 下载jdk、tomcat安装包,上传到虚拟机目录 /mnt 下

3.3 解压,创建Dockerfile文件

tar -zxvf apache-tomcat-7.0.94.tar.gz  #解压tomcat
tar -zxvf jdk-8u191-linux-x64.tar.gz   #解压jdk 

touch Dockerfile #创建文件,注意大小写,D大写
操作完成之后,mnt目录内容如下(压缩包可以删除):
在这里插入图片描述

3.4 编写Dockerfile文件(可以先用文本编辑写,然后拷贝进去就行,最后的文件如下)

#指定操作的镜像
FROM centos
#维护者信息

MAINTAINER zhoutg
#执行命令:创建目录

RUN mkdir -p /usr/local/soft
#拷贝命令:将jdk1.8.0_191添加到镜像centos的/usr/local/soft/目录下,并命名为jdk,原文件夹会被删除
ADD jdk1.8.0_191 /usr/local/soft/jdk
#将apache-tomcat-8.5.31添加到镜像centos的/usr/local/soft/目录下,并命名为tomcat
ADD apache-tomcat-7.0.94 /usr/local/soft/tomcat
 
#添加环境变量
ENV JAVA_HOME /usr/local/soft/jdk
ENV CATALINA_HOME /usr/local/soft/tomcat
ENV PATH $PATH:$JAVA_HOME/bin:$CATALINA_HOME/bin
 
#暴露8080端口
EXPOSE 8080
 
#启动时运行tomcat
CMD ["/usr/local/soft/tomcat/bin/catalina.sh","run"]

参数说明:
FROM : 指定基础镜像,并且必须是第一条指令
MAINTAINER : 指定作者
RUN : 运行指定的命令
ADD : 复制命令,把文件复制到镜像中。
ENV : 设置环境变量
EXPOSE : 功能为暴漏容器运行时的监听端口给外部
CMD : 指定容器启动时运行的命令

3.5 构建Docker镜像

docker build -t centos_tomcat .  
或  docker build -t centos_tomcat /mnt     

参数说明:
-t:设置tag名称, 命名规则centos/tomcat:tag(若不添加版本号,默认latest)
.: 表示使用当前目录下的Dockerfile文件(注意语句后面有一个点)

3.6 启动镜像,访问

docker run -d -p 8080:8080 --name c1 centos_tomcat
docker start c1

参数说明
-d: 后台运行
-p:端口映射 宿主机port : 容器port
–name: 指定容器运行名称
注意这个命令最后没有/bin/bash,否则不会启动tomcat

在这里插入图片描述
在这里插入图片描述


更多精彩内容