摘要:实践定制镜像准备文件下载安装包解压修改文件移动相关文件修改文件,在的节点增加属性。现在能用账号在对应的上进行在线部署操作。是一种推出的免费的公共镜像库服务。本地对镜像打提交镜像到仓库
# CentOS
yum update && yum install -y wget curl unar
# Debain/Ubuntu
apt update && apt install -y wget curl unar
# 下载 tomcat8 安装包 https://tomcat.apache.org/download-80.cgi
wget -N https://mirrors.tuna.tsinghua.edu.cn/apache/tomcat/tomcat-8/v8.5.61/bin/apache-tomcat-8.5.61.zip
# 解压
unar apache-tomcat-8.5.61.zip && cd apache-tomcat-8.5.61
移动相关文件
mkdir tomcat8-docker
cp tomcat-users.xml server.xml tomcat8-docker/
cd tomcat8-docker
修改 server.xml
文件,在 port="8080"
的 Connector
节点增加属性URIEncoding="UTF-8"
。
原因:将 get
请求中的参数做 UTF-8
编码,以后在浏览器的地址栏可以直接输入中文参数。
修改 tomcat-users.xml
文件,在tomcat-users
节点中增加以下内容。
创建 manager.xml
文件。
现在能用 tomcat
账号在对应的 tomcat
上进行在线部署操作。
新建文件 Dockerfile
touch Dockerfile
cat > Dockerfile << -EOF
# First docker file from kongren
# VERSION 0.0.1
# Author: kongren
# 基础镜像
FROM tomcat
# 作者
MAINTAINER kongren
# 定义工作目录
ENV WORK_PATH /usr/local/tomcat/conf
# 定义manager.xml工作目录
ENV MANAGER_PATH /usr/local/tomcat/conf/Catalina/localhost
# 定义要替换的文件名
ENV USER_CONF_FILE_NAME tomcat-users.xml
# 定义要替换的server.xml文件名
ENV SERVER_CONF_FILE_NAME server.xml
# 定义要新增的manager.xml文件名
ENV MANAGER_CONF_FILE_NAME manager.xml
# 删除原文件tomcat-users.xml
RUN rm $WORK_PATH/$USER_CONF_FILE_NAME
# 复制文件tomcat-users.xml
COPY ./$USER_CONF_FILE_NAME $WORK_PATH/
# 删除原文件server.xml
RUN rm $WORK_PATH/$SERVER_CONF_FILE_NAME
# 复制文件server.xml
COPY ./$SERVER_CONF_FILE_NAME $WORK_PATH/
# 复制文件manager.xml
COPY ./$MANAGER_CONF_FILE_NAME $MANAGER_PATH/
EOF
以上就是Dockerfile的全部内容,每一行都有使用说明。几个关键点如下:
FROM tomcat
的意思是使用tomcat
作为基础镜像;tomcat
作为基础镜像后,通过RUN rm
命令将原有的server.xml
和tomcat-users.xml
文件删除;server.xml
和tomcat-users.xml
文件复制到原来的conf
目录下,这样就用取代了原有的文件;构建 tomcat
镜像
$ docker build -t kongren/tomcat:8.5.61 .
Sending build context to Docker daemon 18.94kB
Step 1/12 : FROM tomcat
---> 6fa48e047721
Step 2/12 : MAINTAINER kongren
---> Using cache
---> 3edb5058268f
Step 3/12 : ENV WORK_PATH /usr/local/tomcat/conf
---> Using cache
---> 171752ea6f68
Step 4/12 : ENV MANAGER_PATH /usr/local/tomcat/conf/Catalina/localhost
---> Using cache
---> f196a2426d3a
Step 5/12 : ENV USER_CONF_FILE_NAME tomcat-users.xml
---> Using cache
---> 6fae9cc05145
Step 6/12 : ENV SERVER_CONF_FILE_NAME server.xml
---> Using cache
---> ad86732af7c2
Step 7/12 : ENV MANAGER_CONF_FILE_NAME manager.xml
---> Using cache
---> 2014bd71fe8d
Step 8/12 : RUN rm $WORK_PATH/$USER_CONF_FILE_NAME
---> Using cache
---> 637698cb46e0
Step 9/12 : COPY ./$USER_CONF_FILE_NAME $WORK_PATH/
---> Using cache
---> 14a33261309b
Step 10/12 : RUN rm $WORK_PATH/$SERVER_CONF_FILE_NAME
---> Using cache
---> c911d2047dd5
Step 11/12 : COPY ./$SERVER_CONF_FILE_NAME $WORK_PATH/
---> Using cache
---> 8290b98670d7
Step 12/12 : COPY ./$MANAGER_CONF_FILE_NAME $MANAGER_PATH/
---> Using cache
---> 141d73e3bc18
Successfully built 141d73e3bc18
Successfully tagged kongren/tomcat:8.5.61
执行完毕后,输入docker images
命令可以查看当前本机的镜像。
$ docker images
启动 tomcat
。
$ docker run --name=tomcat8 -p 8080:8080 -e TOMCAT_SERVER_ID=tomcat_server_001 -idt tomcat:8.5.61
执行docker ps
命令,可以看到启动的容器:
$ docker ps
http://:8080
,可以看到熟悉的页面这里使用 Ucloud 的 公共镜像库 UHub。UHub 是一种 UCloud 推出的免费的公共镜像库服务。
登录镜像仓库。
$ docker login uhub.service.ucloud.cn -u ren@outlook.pt
本地对镜像打 tag
:
$ docker tag kongren/tomcat:8.5.61 uhub.service.ucloud.cn/kongren/tomcat:8.5.61
提交镜像到仓库:
$ docker push uhub.service.ucloud.cn/kongren/tomcat:8.5.61
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/125936.html
Docker技术之构建镜像和网络模式解析 img{ display:block; margin:0 auto !important; width:100%; } body{ width:75%; ...
摘要:创建用户组并添加用户。默认情况下是过滤掉所有的入站规则。初始命令表示一旦容器启动,需要运行的命令,此时使用,表示什么也不做,只需进入命令行即可。1.什么是docker docker翻译为搬运工,在这里应该可以理解为搬运应用的工具,也就是云.先了解其运用场景之后更容易对他形成深刻理解. Docker提供了一种可移植的配置标准化机制,允许你一致性地在不同的机器上运行同一个Container;...
摘要:的主要作用是自己根据基础镜像,重新定制镜像,而不是直接从官方仓库拿现成的使用。以接下来要构建的环境来说明下,下面我将要搭建一个的开发环境,需要进行配合。它的主要作用是持久化数据,避免容器销毁后内部数据丢失暴露到宿主机的端口。 以前一直使用 Vagrant 作为自己的开发环境,并且在上家公司也推行大家采用 Vagrant 作为开发环境,保障公司使用的是同一套开发环境。随着docker的流...
摘要:的主要作用是自己根据基础镜像,重新定制镜像,而不是直接从官方仓库拿现成的使用。以接下来要构建的环境来说明下,下面我将要搭建一个的开发环境,需要进行配合。它的主要作用是持久化数据,避免容器销毁后内部数据丢失暴露到宿主机的端口。 以前一直使用 Vagrant 作为自己的开发环境,并且在上家公司也推行大家采用 Vagrant 作为开发环境,保障公司使用的是同一套开发环境。随着docker的流...
阅读 3473·2023-04-25 20:09
阅读 3685·2022-06-28 19:00
阅读 2994·2022-06-28 19:00
阅读 2995·2022-06-28 19:00
阅读 3048·2022-06-28 19:00
阅读 2834·2022-06-28 19:00
阅读 2969·2022-06-28 19:00
阅读 2578·2022-06-28 19:00