docker pull centos
tar -zxvf apache-tomcat-7.0.94.tar.gz #解压tomcat
tar -zxvf jdk-8u191-linux-x64.tar.gz #解压jdk
touch Dockerfile #创建文件,注意大小写,D大写
操作完成之后,mnt目录内容如下(压缩包可以删除):
#指定操作的镜像
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 : 指定容器启动时运行的命令
docker build -t centos_tomcat .
或 docker build -t centos_tomcat /mnt
参数说明:
-t:设置tag名称, 命名规则centos/tomcat:tag(若不添加版本号,默认latest)
.: 表示使用当前目录下的Dockerfile文件(注意语句后面有一个点)
docker run -d -p 8080:8080 --name c1 centos_tomcat
docker start c1
参数说明
-d: 后台运行
-p:端口映射 宿主机port : 容器port
–name: 指定容器运行名称
注意这个命令最后没有/bin/bash,否则不会启动tomcat