dockers 自定义tomcat

准备工作

  1. 创建目录 /root/mydocker
  2. 将jdk1.8,tomcat8.5,touch.txt上传到新建目录
  3. 创建Dockerfile
FROM centos
MAINTAINER      kevin<[email protected]>
# 把宿主机文件copy到容器/usr/local/ 目录下
COPY touch.txt /usr/local/touch1.txt

# 把java和tomcat加载到容器中
ADD jdk-8u221-linux-x64.tar.gz /usr/local/
ADD apache-tomcat-8.5.45.tar.gz /usr/local/

# 安装vim 编译器
RUN yum -y install vim
# 设置环境变量
ENV MYPATH /usr/local/
# 设置登录落脚点
WORKDIR /usr/local/

# 设置java和tomcat环境变量
ENV JAVA_HOME /usr/local/jdk1.8.0_221
ENV CLASSPATH $JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
ENV CATAINA_HOME /usr/local/apache-tomcat-8.5.45
ENV CATAINA_BASE /usr/local/apache-tomcat-8.5.45
ENV PATH $PATH:$JAVA_HOME/bin:$CATAINA_HOME/lib:$CATAINA_HOME/bin

# 容器运行时监听端口
EXPOSE 8080
# 启动tomcat
#ENTRYPOINT ["/usr/local/apache-tomcat-8.5.45/bin/startup.sh"]
#CMD ["/usr/local/apache-tomcat-8.5.45/bin/startup.sh","run"]
CMD /usr/local/apache-tomcat-8.5.45/bin/startup.sh && tail -f /usr/local/apache-tomcat-8.5.45/logs/catalina.out


注意:CMD中为linux命名,不可使用ENV新建的变量

创建镜像

docker build -f Dockerfile -t mytomcat:0.1 .
# 如果不写 -f Dockerfile 默认读写当前路径下 Dokcerfile文件
docker build -t mytomcat:0.1 .

运行镜像

docker run -d -p 9080:8080 --name mytomcat0.1 -v /root/mydocker/tomcat8.5/test:/usr/local/apache-tomcat-8.5.45/webapps/test -v /root/mydocker/tomcat8.5/tomcatlogs/:/usr/local/apache-tomcat-8.5.45/logs --privileged=true mytomcat:0.1
	
	-d 后台运行容器
	-p 9080:8080 容器内8080端口映射宿主机9080端口
	--name mytomcat0.1 指定容器名称
	-v 数据卷,设置宿主机和容器数据卷目录
	--privileged=true 如果写权限有问题,设置为true
	tomcat:0.1 指定镜像 

验证

验证tomcat以启动

curl http://127.0.0.1:9080

验证WORKDIR生效,登录落脚点

[root@localhost tomcat8.5]# docker exec mytomcat0.1 pwd
/usr/local

jdk版本


[root@localhost tomcat8.5]# docker exec mytomcat0.1 java -version
java version "1.8.0_221"
Java(TM) SE Runtime Environment (build 1.8.0_221-b11)
Java HotSpot(TM) 64-Bit Server VM (build 25.221-b11, mixed mode)

进入容器

docker attach  mytomcat0.1

你可能感兴趣的:(工具,linux,docker,Dockerfile)