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 ...
随机推荐
- css3软键盘不盖住输入框的方法
css3软键盘不盖住输入框的方法 弹出软键盘的时候 最外面的容器高度就发生了变化 要减去软键盘高度了<pre>var bodyheight bodyheight = $('body').h ...
- kubernetes 集群部署
kubernetes 集群部署 环境JiaoJiao_Centos7-1(152.112) 192.168.152.112JiaoJiao_Centos7-2(152.113) 192.168.152 ...
- MyBatis直接执行sql语句mapper
<select id="queryBySql" resultType="HashMap"> <![CDATA[ ${sql} ]]> & ...
- [java] 笔记 from黑马
1. 关于String的创建. PS:String的底层是用字节数组来实现的. 2.字符串常量池的笔记 具体指向是如下图的, 注意看0x666和0x999这两个地址. 3.原因如下: 4. 5. ...
- JenKins结合cppcheck及cpplint进行代码风格及静态代码检测
JenKins结合cppcheck及cpplint 最近公司需要在Jenkins上安装cppcheck及cpplint进行代码风格及静态代码检测,这里记录下过程. 前提条件 安装了Jenkins 步骤 ...
- hdu 1087 Super Jumping! Jumping! Jumping!(动态规划DP)
Super Jumping! Jumping! Jumping!Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 ...
- codeblocks 调试
codeblocks 调试工具使用的注意事项: 1.codebloccks 调试,必须要在一个项目下才可以,也就是说“单独的文件是不能运行debug工具的” 2.项目的目录文件名必须是全英文,同时文件 ...
- 附010.Kubernetes永久存储之GlusterFS超融合部署
一 前期准备 1.1 基础知识 在Kubernetes中,使用GlusterFS文件系统,操作步骤通常是: 创建brick-->创建volume-->创建PV-->创建PVC--&g ...
- Java开发中常用jar包整理及使用
本文整理了我自己在Java开发中常用的jar包以及常用的API记录. <!-- https://mvnrepository.com/artifact/org.apache.commons/com ...
- python3 之 内置函数Zip
python3 内置函数zip 一.简介: 该函数用于将多个可迭代对象作为参数,依次将对象中对应的元素打包成一个个元组,然后返回由这些元组组成的对象.二.实例1: name = ['张三','李四', ...