通过dockerfile文件创建tomcat容器并上传至docker仓库
对于传统服务器环境的搭建,只能作用于当前的服务器,如果换成另一个服务器,那么之前的环境都需要再重新搭建一次,效率比较低下,docker服务基于镜像创建和使用,当我们完成一个环境的搭建后,可以将当前服务打包成镜像上传到镜像仓库上,当我们在别的服务器需要使用这个环境的时候,只需要重新下载启动该镜像就可以了
制作基于tomcat的dockerfile文件
准备环境
- 首先我们需要去tomcat官网下载tomcat包,从conf文件夹下获取server.xml文件,这个文件是我们需要重新编辑的
- 准备一个可以运行的war包程序,启动tomcat服务,查看程序是否可以正常运行
编写dockerfile文件
FROM tomcat:8.0-jre8
#作者
MAINTAINER W2G
#定义工作目录
ENV WORK_PATH /usr/local/tomcat/conf
#定义要替换的server.xml文件名
ENV SERVER_CONF_FILE_NAME server.xml
#删除原文件server.xml
RUN rm $WORK_PATH/$SERVER_CONF_FILE_NAME
#复制文件server.xml
COPY ./$SERVER_CONF_FILE_NAME $WORK_PATH/
在这里需要注意
- FROM后面是需要下载的tomcat的版本号,这里大家可以上网易蜂巢上查看,网易蜂巢上也有很多别人已经构建好的镜像,这里需要注意的是我一开始使用8.0.46-jre7-alpine作为基础镜像但是构造的容器不行,后来换成了上面的那个版本就可以了
- 文件中的server.xml文件就是我们重新编辑的文件,主要是修改端口号,定义war包等
将当前dockerfile打包成镜像文件
此处需要注意
- 首先进入dockerfile文件所在目录下
-
此处需要注意的是,正确的写法是docker build -t w2gtomcat:0.0.1 .后面需要带上这个空格和.
当出现下图就是built成功
这时候查看镜像就可以看到我们生成的镜像了
启动该镜像文件
docker run -dit --net=host --name image_tomcat -p 10003:80 -e JAVA_OPTS='-Xmx512m' -v /etc/localtime:/etc/localtime:ro -v /opt/image_tomcat/webapps:/usr/local/tomcat/webapps 5d859994672d
此处主要是启动刚才我们创建的镜像,主要有以下几点需要注意
- --name后面是当前启动的容器名称
- -p是我们需要映射的端口号
-
-v是我们需要映射的文件,此处我需要映射war包的启动路径
下面是我启动成功的war包文件
将创建成功的容器打包成镜像并上传至docker仓库
首先登录hub.docker.com,在该网站创建自己的账号,然后在服务器进行登录操作
登录成功后,首先将当前正在运行的服务停下,将当前服务打包成镜像文件并提交
docker commit -a "w2g" -m "test for tomcat" image_tomcat xxxxxxx/image_tomcat
此处需要注意
- -a是提交的作者名
- image_tomcat 是当前打包容器的名称
- xxxxxxx/image_tomcat是打包镜像的名称
提交成功后,查看镜像,我们会发现刚才提交的镜像
将镜像上传至docker仓库
docker push xxxxxxx/imageTomcat:0.0.1
将镜像上传成功后,可以在镜像仓库中看到我们刚刚提交的镜像文件
至此,我们从构建dockerfile文件到将服务打包成镜像文件上传至仓库就全部写完了