在此篇之前, 需要配置一些环境, 请参考上一篇的介绍: 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 (附) 向镜像中添加文件

镜像中一般不支持vivim等工具, 因此我们可以借助cp(拷贝)命令上传文件到镜像中.

# 通过 cp 命令将文件拷贝到容器中:
[root@localhost data]# docker cp test.xml 23f14c40c4f8:/usr/local/tomcat/conf/Catalina/localhost

参考资料

Docker 删除镜像

使用 Dockerfile 定制镜像

在docker下的tomcat容器中部署war包的两种方式

Docker安装+HelloWorld+运行Tomcat

版权声明

作者: 马瘦风(https://healchow.com)

出处: 博客园 马瘦风的博客(https://www.cnblogs.com/shoufeng)

感谢阅读, 如果文章有帮助或启发到你, 点个[好文要顶

Docker 02 - 向 Docker 的 Tomcat 镜像中部署 Web 应用的更多相关文章

  1. Docker安装Tomcat镜像并部署web项目

    一.安装Tomcat 1.查找Docker Hub上的tomcat镜像 docker search tomcat 2.拉取官方的镜像 docker pull tomcat 等待下载完毕,需要一些时间. ...

  2. 实战docker,编写Dockerfile定制tomcat镜像,实现web应用在线部署

    最初在tomcat上部署web应用的方式,是通过maven的maven-compiler-plugin插件先打成war包,再将war包复制到tomcat的webapps目录下,后来用上了tomcat7 ...

  3. 实战docker,编写Dockerfile定制tomcat8镜像,实现web应用在线部署

    最初在tomcat上部署web应用的方式,是通过maven的maven-compiler-plugin插件先打成war包,再将war包复制到tomcat的webapps目录下,后来用上了tomcat7 ...

  4. Docker & k8s 系列三:在k8s中部署单个服务实例

    本章将会讲解: pod的概念,以及如何向k8s中部署一个单体应用实例. 在上面的篇幅中,我们了解了docker,并制作.运行了docker镜像,然后将镜像发布至中央仓库了.然后又搭建了本机的k8s环境 ...

  5. 在Tomcat中部署Web项目的操作方法,maven项目在Tomcat里登录首页报404

     maven项目在Tomcat里登录首页报404, 解决:编辑conf/server.xml进行配置<Host>里的<Context>标签里的path. <Context ...

  6. 在Tomcat中部署web项目的三种方式

    搬瓦工搭建SS教程 SSR免费节点:http://www.xiaokeli.me 在这里介绍在Tomcat中部署web项目的三种方式: 1.部署解包的webapp目录 2.打包的war文件 3.Man ...

  7. Tomcat中部署web应用的三种方式

    Tomcat中部署web应用的三种方式(静态部署)       第一种,针对war或解压后的war,最为常用的是直接操作webapp目录,将完整的war包或者web应用直接放到webapp目录下.使用 ...

  8. Tomcat 中部署 web 应用 ---- Dubbo 服务消费者 Web 应用 war 包的部署

    使用Maven构建Dubbo服务的可执行jar包 Dubbo服务的运行方式: 1.使用Servlet容器运行(Tomcat.Jetty等)----不可取 缺点:增加复杂性(端口.管理) 浪费资源(内存 ...

  9. Tomcat翻译--Tomcat Web Application Deployment(Tomcat中部署web应用)

    原文:http://tomcat.apache.org/tomcat-7.0-doc/deployer-howto.html Introduction(介绍) Deployment is the te ...

随机推荐

  1. Java描述设计模式(17):调停者模式

    本文源码:GitHub·点这里 || GitEE·点这里 一.生活场景 1.场景描述 在公司的日常安排中,通常划分多个部门,每个部门又会分为不同的小组,部门经理的一项核心工作就是协调部门小组之间的工作 ...

  2. PHP实现开发者模式出现该公众号提供的服务出现故障 请稍后再试解决方法

    PHP实现开发者模式出现该公众号提供的服务出现故障 请稍后再试解决方法 仔细检查下有没有echo等输出的代码  echo没有输出东西 就是报这个信息  所以调试信息都必须写入日记

  3. C语言:大数取余

    大数取余数(数组) 今天做学校的oj时遇到一题,问题可见一下截图: 查遍各大论坛,都没有遇到合适的方法,普通方法不可用,要采用数组的形式. 被除数超过long long类型,不能采用常规思路,否则会出 ...

  4. CentOS 6.4 configure error的解决方法

    资料来源:http://blog.sina.com.cn/s/blog_62426dcf0100f2rz.html 虽然上面的文章是针对centOS 5写的,不过经测试也可用于centOS6.4. 自 ...

  5. MD5 加盐加密

    一.概述 MD5(Message Digest  Algorithm 5),是一种散列算法,是不可逆的,即通过md5加密之后没办法得到原文,没有解密算法. 在一般的项目中都会有登录注册功能,最简单的, ...

  6. 别翻了,这篇文章就是要让你入门java多线程!

    目录 1. 理解线程与进程 2.理解并行和并发 3.特殊的一个单线程:主线程(Main线程) 4. 创建多线程的四种方式 5.使用匿名内部类方式创建线程 6.线程安全问题 7.解决线程安全问题:线程同 ...

  7. 心里有点B树

    在说B树之前最好先看看2-3树, 2-3树是B树的一种特例, 什么B树, B树就是2-3树, 2-3-4 树 , 2-3-4-5... 树的统称, 而B+树又是B树的一种变形 性质: 什么是二节点, ...

  8. C# XML解析之DOM模型

    DOM的工作方式是:首先将XML文档一次性的装入内存,然后根据文档中定义的元素和属性在内存中创建一个“树型结构”也就是一个文档对象模型,这里的含义其实是把文档对象化,文档中每个节点对应着模型中一个对象 ...

  9. Java多线程——多线程方法详解

    本系列文章是Java多线程的详解介绍,对多线程还不熟悉的同学可以先去看一下我的这篇博客Java基础系列3:多线程超详细总结,这篇博客从宏观层面介绍了多线程的整体概况,接下来的几篇文章是对多线程的深入剖 ...

  10. tcp和udp的网络编程(发送消息及回复)

    一.UDP  无连接的  高效的  基于数据报的  不可靠 的连接 主要的应用场景: 需要资源少,网络情况稳定的内网,或者对于丢包不敏感的应用,比如 DHCP 就是基于 UDP 协议的.不需要一对一沟 ...