Docker 02 - 向 Docker 的 Tomcat 镜像中部署 Web 应用
在此篇之前, 需要配置一些环境, 请参考上一篇的介绍: Docker 01 - CentOS 7 中安装 Docker 的详细步骤.
1 下载 Docker 镜像
# 查看本地镜像(暂时没有任何镜像):
[root@localhost /data]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
# 查看正在运行的 Docker 容器(暂时没有运行的):
[root@localhost /data]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
配置国内的镜像加速器, 然后抓取 Tomcat 的镜像:
# 前往 Docker 安装目录, 新增配置:
[root@localhost ~]# cd /etc/docker/
[root@localhost docker]# ls
key.json
[root@localhost docker]# vim daemon.json
# 加速器配置内容如下:
{
"registry-mirrors": ["https://registry.docker-cn.com", "https://pee6w651.mirror.aliyuncs.com"]
}
# 保存、退出后, 另配置生效:
[root@localhost docker]# systemctl daemon-reload
# 最后需要重启 Docker 服务:
[root@localhost docker]# systemctl start docker.service
# 然后从仓库中拉取 Tomcat 镜像(下面镜像名称与镜像分支号之间的冒号":"不能有空格):
[root@localhost /data]# docker pull tomcat:8.5.43
8.5.43: Pulling from library/tomcat
9cc2ad81d40d: Pulling fs layer
e6cb98e32a52: Download complete
42cfa3699b05: Pull complete
......
Digest: sha256:6e30b06a90d3206519a5ea730057001a1b830b9169e1baf76a97e1767efc0db7
Status: Downloaded newer image for tomcat:8.5.43
# 查看是否拉取成功:
[root@localhost docker]# docker image ls
REPOSITORY TAG IMAGE ID CREATED SIZE
tomcat 8.5.43 6e30b06a90d3 4 days ago 506MB
2 部署Web项目
2.1 通过Dockerfile自定义项目镜像
我们通过 Dockerfile 脚本(由一系列命令和参数构成), 从基础镜像中创建一个新的、自定义的镜像.
# 创建操作目录:
[root@localhost ~]# mkdir -p /data/Docker && cd /data/Docker
# 创建 Dockerfile 脚本, 内容如下:
[root@localhost ~]# cat Dockerfile
FROM tomcat:8.5.43
ADD heal-test /usr/local/tomcat/webapps
# 其中 “heal-test” 是我们要发布的测试Web项目, 是解压后的文件, 与 Dockerfile 处于同级目录.
# 在 Dockerfile 文件所在目录执行:
[root@localhost Docker]# docker build --rm -t heal-test:1.0 .
Sending build context to Docker daemon 70.75MB
Step 1/2 : FROM tomcat:8.5.43
---> 6e30b06a90d3
Step 2/2 : ADD goSearch /usr/local/tomcat/webapps
---> 09ddcc5cacc6
Successfully built 09ddcc5cacc6
Successfully tagged heal-test:1.0
# 查看镜像是否生成:
[root@localhost Docker]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
heal-test 1.0 09ddcc5cacc6 7 seconds ago 576MB
tomcat 8.5.43 6e30b06a90d3 4 days ago 506MB
2.2 启动自定义镜像, 生成一个容器
# 根据自定义的镜像创建一个容器, 运行在宿主机的 7070 端口上:
[root@localhost data]# docker run -it -p 7070:8080 heal-test:1.0
# 查看是否正常运行:
[root@localhost data]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
23f14c40c4f8 heal-test:1.0 "catalina.sh run" 20 seconds ago Up 19 seconds 0.0.0.0:7070->8080/tcp upbeat_meninsky
2.3 另一种启动方式: 交互式启动
# 通过bash命令, 与 Docker 进行交互:
[root@localhost Docker]# docker run -it --name heal-test -p 7070:8080 heal-test:1.0 bash
WARNING: IPv4 forwarding is disabled. Networking will not work.
root@87aabcbc700b:/usr/local/tomcat# cd conf/
root@87aabcbc700b:/usr/local/tomcat/conf# ls
catalina.policy context.xml jaspic-providers.xsd server.xml tomcat-users.xsd
catalina.properties jaspic-providers.xml logging.properties tomcat-users.xml web.xml
root@87aabcbc700b:/usr/local/tomcat/conf# exit
exit
3 (附) 向镜像中添加文件
镜像中一般不支持vi、vim等工具, 因此我们可以借助cp(拷贝)命令上传文件到镜像中.
# 通过 cp 命令将文件拷贝到容器中:
[root@localhost data]# docker cp test.xml 23f14c40c4f8:/usr/local/tomcat/conf/Catalina/localhost
参考资料
版权声明
出处: 博客园 马瘦风的博客(https://www.cnblogs.com/shoufeng)
感谢阅读, 如果文章有帮助或启发到你, 点个[好文要顶
Docker 02 - 向 Docker 的 Tomcat 镜像中部署 Web 应用的更多相关文章
- Docker安装Tomcat镜像并部署web项目
一.安装Tomcat 1.查找Docker Hub上的tomcat镜像 docker search tomcat 2.拉取官方的镜像 docker pull tomcat 等待下载完毕,需要一些时间. ...
- 实战docker,编写Dockerfile定制tomcat镜像,实现web应用在线部署
最初在tomcat上部署web应用的方式,是通过maven的maven-compiler-plugin插件先打成war包,再将war包复制到tomcat的webapps目录下,后来用上了tomcat7 ...
- 实战docker,编写Dockerfile定制tomcat8镜像,实现web应用在线部署
最初在tomcat上部署web应用的方式,是通过maven的maven-compiler-plugin插件先打成war包,再将war包复制到tomcat的webapps目录下,后来用上了tomcat7 ...
- Docker & k8s 系列三:在k8s中部署单个服务实例
本章将会讲解: pod的概念,以及如何向k8s中部署一个单体应用实例. 在上面的篇幅中,我们了解了docker,并制作.运行了docker镜像,然后将镜像发布至中央仓库了.然后又搭建了本机的k8s环境 ...
- 在Tomcat中部署Web项目的操作方法,maven项目在Tomcat里登录首页报404
maven项目在Tomcat里登录首页报404, 解决:编辑conf/server.xml进行配置<Host>里的<Context>标签里的path. <Context ...
- 在Tomcat中部署web项目的三种方式
搬瓦工搭建SS教程 SSR免费节点:http://www.xiaokeli.me 在这里介绍在Tomcat中部署web项目的三种方式: 1.部署解包的webapp目录 2.打包的war文件 3.Man ...
- Tomcat中部署web应用的三种方式
Tomcat中部署web应用的三种方式(静态部署) 第一种,针对war或解压后的war,最为常用的是直接操作webapp目录,将完整的war包或者web应用直接放到webapp目录下.使用 ...
- Tomcat 中部署 web 应用 ---- Dubbo 服务消费者 Web 应用 war 包的部署
使用Maven构建Dubbo服务的可执行jar包 Dubbo服务的运行方式: 1.使用Servlet容器运行(Tomcat.Jetty等)----不可取 缺点:增加复杂性(端口.管理) 浪费资源(内存 ...
- Tomcat翻译--Tomcat Web Application Deployment(Tomcat中部署web应用)
原文:http://tomcat.apache.org/tomcat-7.0-doc/deployer-howto.html Introduction(介绍) Deployment is the te ...
随机推荐
- 关于js中函数的一点总结
1函数中this作用域 this根据当前环境来决定作用域,可以使用call和apply的方法来改变当前的this指向 <script> var name = "global&qu ...
- uboot启动完成,kernel启动时lcd屏幕出现杂色解决办法
先说说开发环境吧: 1 内核:linux2.6.xx 2 uboot:买开发板带的 注释:在最后我又添加了问题得到完美解决的办法. 问题:uboot启动完成,kernel启动时lcd屏幕出现杂色(比如 ...
- 易初大数据 spss 2019年10月31日 wangqingchao
---恢复内容开始--- 1.描述性统计分析方法是指应用分类.制表.图形及概括性数据指标来概括数据分析特征的方法. 2.而推断性统计分析方法则是通过随机抽样,应用统计方法把从样本数据得到的结论推广到总 ...
- 使用 Scrapy 爬取去哪儿网景区信息
Scrapy 是一个使用 Python 语言开发,为了爬取网站数据,提取结构性数据而编写的应用框架,它用途广泛,比如:数据挖掘.监测和自动化测试.安装使用终端命令 pip install Scrapy ...
- (Codeforce)Correct Solution?
One cold winter evening Alice and her older brother Bob was sitting at home near the fireplace and g ...
- 小白学 Python 爬虫(1):开篇
人生苦短,我用 Python 引言 各位同学大家好,好久不见(可能只有一两天没见:囧)~~~ 先讲一件事情,昨天为啥没更新. emmmmmmmmm,当然是因为加班啦,快到年底了,公司项目比较忙,最近的 ...
- 领扣(LeetCode)删除链表中的节点 个人题解
请编写一个函数,使其可以删除某个链表中给定的(非末尾)节点,你将只被给定要求被删除的节点. 现有一个链表 -- head = [4,5,1,9],它可以表示为: 4 -> 5 -> 1 - ...
- jQuery简单面试题
干货 | jQuery经典面试题及答案精选 面试题来啦! 毫无疑问,JavaScript是一门如此有用,但总是被低估的一门语言. 在 jQuery 粉墨登场之前,我们曾经会写出冗长的JavaScrip ...
- 使用OpenCV和imagezmq通过网络实时传输视频流 | live video streaming over network with opencv and imagezmq
本文首发于个人博客https://kezunlin.me/post/b8847d9f/,欢迎阅读最新内容! live video streaming over network with opencv ...
- GDG Xi'an DevFest 2019 闪电演讲 -《假如我是一个浏览器》PPT(经典多图,建议收藏)
GDG Xi'an DevFest2019演讲PPT链接: http://tmp.link/f/5dd9e6bf461b6 闪电演讲<假如我是一个浏览器>PPT链接: https://gi ...