对于想了解Docker创建tomcat容器并部署web项目的读者,本文将是一篇不可错过的文章,我们将详细介绍docker搭建tomcat,并且为您提供关于3.在eclipse中创建Web项目,并部署到
对于想了解Docker 创建 tomcat 容器并部署 web 项目的读者,本文将是一篇不可错过的文章,我们将详细介绍docker搭建tomcat,并且为您提供关于3.在eclipse中创建Web项目,并部署到Tomcat上、centos 7 中安装 docker和创建 tomcat容器并部署web应用、Docker Compose 部署项目到容器 - 基于 Tomcat 和 mysql 的项目 yml 配置文件代码、Docker | 制作tomcat镜像并部署项目的有价值信息。
本文目录一览:- Docker 创建 tomcat 容器并部署 web 项目(docker搭建tomcat)
- 3.在eclipse中创建Web项目,并部署到Tomcat上
- centos 7 中安装 docker和创建 tomcat容器并部署web应用
- Docker Compose 部署项目到容器 - 基于 Tomcat 和 mysql 的项目 yml 配置文件代码
- Docker | 制作tomcat镜像并部署项目
Docker 创建 tomcat 容器并部署 web 项目(docker搭建tomcat)
1. 拉取 Tomcat 镜像:
docker pull tomcat
或者拉取我封装好的镜像,直接跳转到第四步
docker pull yanghe001/tomcat
2. 二次封装镜像:
创建基础容器:
docker run -itd --name tomcat -p 6066:8080 tomcat
修改容器中 server.xml:
进入 tomcat 的 conf 目录编辑 server.xml
Host 配置项添加一行:
<Context path="" docBase="/opt" reloadable="false"/>
3. 提交二次镜像:
docker commit tomcat tomcat_yh
4. 创建容器:
docker run -it -v /opt/work/docker/api:/opt -p 30002:8080 tomcat_yh
-v 挂载你项目的解压目录【/opt/work/docker/api】到容器目录【/opt】
5. 测试访问:
ip:30002
3.在eclipse中创建Web项目,并部署到Tomcat上
1.找到创建web项目的菜单
2.创建web项目并选择web环境
3.查看创建好的web项目结构
4.在web项目的webContent文件夹下创建jsp页面
5.查看是否创建jsp页面成功,并编辑jsp页面
6.查找server服务器选项卡
7.将javaweb项目和tomcat服务器绑定
8.启动tomcat
9.在浏览器访问web项目
centos 7 中安装 docker和创建 tomcat容器并部署web应用
在 CentOS 7 中安装 Docker 和创建 Tomcat 容器并部署Web应用
一般部署Web应用都需要安装数据库,比如 MysqL 和 Redis,MysqL 和 Redis 属于多个Web应用公用的系统,所以就不需要安装到 Docker 里了,直接在操作系统里安装就好。所以,本文只讲解如何在 Docker 里创建 Tomcat 容器并部署Web应用,那么有人会问,在 Docker 里运行的应用如何访问安装在操作系统里的数据库呢?实践证明:在 Docker 容器里运行的Web应用可以直接访问安装在操作系统里的数据库(比如 MysqL 和 Redis),不需要任何特殊配置。
一、安装 Docker
1. 检查操作系统内核版本
检查操作系统内核版本,据说必须是3.10及以上。
# uname -r
3.10.0-862.9.1.el7.x86_64
2. 安装 Docker
使用 yum 命令安装 Docker。
# yum install docker
Loaded plugins: fastestmirror
Determining fastest mirrors
* base: mirrors.huaweicloud.com
* extras: mirrors.huaweicloud.com
* updates: mirrors.nwsuaf.edu.cn
base | 3.6 kB 00:00
extras | 3.4 kB 00:00
updates | 3.4 kB 00:00
(1/2): extras/7/x86_64/primary_db | 205 kB 00:00
(2/2): updates/7/x86_64/primary_db | 6.0 MB 00:00
Resolving Dependencies
... ...
Complete!
3. 启动 Docker
[root@localhost /]# systemctl start docker
4. 查看 Docker 版本
# docker -v
Docker version 1.13.1,build 8633870/1.13.1
5. 设置开机自启动 Docker
# systemctl enable docker
二、安装 Tomcat 并部署WAR工程
1. 看 Docker 支持哪些版本的 Tomcat
打开 https://hub.docker.com/r/library/tomcat/ 查看 Docker 都支持哪些版本的Tocmat。
2. 在 Docker 里安装 Tomcat
在 Docker 里安装 Tomcat,拉取 Tomcat 镜像,不指定版本就是默认安装最新版,这里安装 8.5.35 版的。
# docker pull tomcat:8.5.35
Trying to pull repository docker.io/library/tomcat ...
8.5.35: Pulling from docker.io/library/tomcat
bc9ab73e5b14: Pull complete
193a6306c92a: Pull complete
e5c3f8c317dc: Pull complete
d21441932c53: Pull complete
fa76b0d25092: Pull complete
346fd8610875: Pull complete
3ca5d6af9022: Pull complete
c06cfa2cea32: Pull complete
205950a5a114: Pull complete
6332a55c669e: Pull complete
723a722311b8: Pull complete
f5b82bb44c57: Pull complete
Digest: sha256:1b18333c03f68a64eb5dcc246984e89cf2d6737b04d95aa34cd337d8abfe796e
Status: Downloaded newer image for docker.io/tomcat:8.5.35
3. 查看本地镜像
# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
docker.io/tomcat 8.5.35 6759d91a032b 6 days ago 463 MB
4. 基于镜像新建一个 Tomcat 容器并启动
注意,命令后面的 6759d91a032b 是前面拉取的 Tomcat 镜像ID!实践证明,如果用镜像名而不用镜像ID,那么就会自动拉取最新版的镜像使用,而不是刚才手动拉取的 8.5.35 版本的镜像。
# docker run --name tomcat8080 -v /etc/localtime:/etc/localtime:ro -d -p 8080:8080 6759d91a032b
Unable to find image 'tomcat:latest' locally
Trying to pull repository docker.io/library/tomcat ...
latest: Pulling from docker.io/library/tomcat
Digest: sha256:1b18333c03f68a64eb5dcc246984e89cf2d6737b04d95aa34cd337d8abfe796e
Status: Downloaded newer image for docker.io/tomcat:latest
e3274a72e8d62a0f3022d3201405ce586147b3031c1232452d001ee41fb9c938
其中 “-v /etc/localtime:/etc/localtime:ro” 表示让容器使用宿主机的时间时区。
-v 标签为容器添加 volume,后面的 :ro 指定该 volume 为只读。
注意:如果容器中指定的挂载目录存在相同的文件时,会被宿主机覆盖掉。
如果想把 Tomcat 的 webapps 目录也挂载到宿主机目录(比如挂载到 /data/webapps),那么就是下面这样,需要再写个 -v 选项:
# docker run --name tomcat8080 -v /etc/localtime:/etc/localtime:ro -v /data/webapps:/usr/local/tomcat/webapps:rw -d -p 8080:8080 6759d91a032b
这时查看宿主机目录(/data/webapps)是空的,进入容器查看 webapps 目录也是空的,放一个 WAR 包应用到宿主机目录(/data/webapps)下,一会 WAR 包解压生成一个同名的文件夹,说明挂载 webapps 目录成功。
查看容器:
# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
054f35167ec5 tomcat "catalina.sh run" 4 seconds ago Up 4 seconds 8080/tcp,0.0.0.0:8686->8686/tcp tomcat8080
查看宿主机时间:
# date
Wed Apr 10 10:16:45 CST 2019
进入容器查看时间:
# docker exec -it tomcat8080 /bin/bash
root@054f35167ec5:/usr/local/tomcat# date
Wed Apr 10 10:16:50 CST 2019
与宿主机的时间一致。
但是 Tomcat 使用的时区还需要单独设置一下,否则部署在 Tomcat 里的工程取到的时间可能不是 Docker 容器的时间。设置很简单,只需在 bin 目录下的 catalina.sh 文件里加上时区即可,如下。
进入容器:
# docker exec -it tomcat8080 /bin/bash
进入 bin 目录:
root@054f35167ec5:/usr/local/tomcat# cd bin/
root@054f35167ec5:/usr/local/tomcat/bin# ls
catalina.sh ......
先备份一下文件 catalina.sh 文件。
因为在容器内不能修改文件,那就把容器文件拷贝到宿主机修改,修改后再拷贝到容器覆盖原文件。
退出容器,把 Tomcat 容器 bin 目录下的 catalina.sh 拷贝到宿主机:
# docker cp tomcat8080:/usr/local/tomcat/bin/catalina.sh ./
在宿主机里编辑 catalina.sh 文件:
打开文件,找到 JAVA_OPTS="$JAVA_OPTS $JSSE_OPTS",在双引号后面加上 “-Duser.timezone=Asia/Shanghai”(当然要与前面内容用空格隔开),修改后是这样的 JAVA_OPTS="$JAVA_OPTS $JSSE_OPTS -Duser.timezone=Asia/Shanghai" 。
文件,然后重启 Tomcat 或重启容器。
5. 查看运行的 Tomcat 容器
# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
9653b878cac6 tomcat "catalina.sh run" 13 days ago Up 13 days 0.0.0.0:8080->8080/tcp tomcat8080
不加 -a 参数只能查看到运行中的容器,加上 -a 参数可以查看所有的容器。举例,如果上面的 Tomcat 容器是退出(Exited)状态,那么就需要加 -a 参数才能看到,如下:
# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
9653b878cac6 tomcat "catalina.sh run" 9 days ago Exited (143) 8 days ago tomcat8080
启动一个已存在的容器用 “start 容器ID” 命令,其中 “容器ID” 可以只写前面几位,Docker 能识别出是哪个容器即可。如下:
# docker start 965
965
再看容器已经启动了:
# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
9653b878cac6 tomcat "catalina.sh run" 9 days ago Up 39 seconds 0.0.0.0:8080->8080/tcp tomcat8080
6. 试试用浏览器打开 Tomcat 界面
这时在浏览器输入 IP:8080 就可访问默认的 Tomcat 界面了。
7. 部署Web应用(WAR工程)
先学习下基本的操作命令。
获取容器的长ID(tomcat8080 是容器名):
# docker inspect -f '{{.Id}}' tomcat8080
9653b878cac63b0c22500834c81b3f0d892d7e201c298d58d7cc9fdd5387492e
进入容器(965是容器ID的前三位数,当然也可以多写几位,只要 Docker 能唯一识别容器即可):
# docker exec -it 965 /bin/bash
执行后直接进入容器,命令提示符由系统的转为容器的了,root@ 后面的“9653b878cac6”是容器ID(短ID),冒号后面的“/usr/local/tomcat”是容器目录,这个目录是 Docker 内的目录不是系统目录。如下:
root@9653b878cac6:/usr/local/tomcat# pwd
/usr/local/tomcat
root@9653b878cac6:/usr/local/tomcat# ls
BUILDING.txt CONTRIBUTING.md LICENSE NOTICE README.md RELEASE-NOTES RUNNING.txt bin conf include lib logs native-jni-lib temp webapps work
顺便删除 Tomcat 的 webapps 目录下的所有内容:
root@9653b878cac6:/usr/local/tomcat# cd webapps/
root@9653b878cac6:/usr/local/tomcat/webapps# ls
ROOT docs examples host-manager manager
root@9653b878cac6:/usr/local/tomcat/webapps# rm -fr *
root@9653b878cac6:/usr/local/tomcat/webapps# ls
退出容器用 exit 命令:
root@9653b878cac6:/usr/local/tomcat/webapps# exit
exit
直接回到了系统,命令提示符由容器的转为系统的了:
[root@localhost /]#
下面开始部署Web应用,很简单就是拷贝WAR包文件到容器中。
将要部署的WAR包拷贝到 Tomcat 容器的 webapps 目录下(命令格式是“docker cp 本地文件 容器ID:容器路径”,其中容器ID可以只写长ID的前面几位):
# docker cp testdocker.war 965:/usr/local/tomcat/webapps/
进入容器看到了拷贝的WAR包文件:
# docker exec -it 965 /bin/bash
root@9653b878cac6:/usr/local/tomcat# ls
BUILDING.txt CONTRIBUTING.md LICENSE NOTICE README.md RELEASE-NOTES RUNNING.txt bin conf include lib logs native-jni-lib temp webapps work
root@9653b878cac6:/usr/local/tomcat# cd webapps/
root@9653b878cac6:/usr/local/tomcat/webapps# ls
testdocker testdocker.war
看到这个WAR包已经解压了,应用跑起来了。
8. 用浏览器访问部署的Web应用
打开浏览器输入 IP:8080/testdocker 就打开了部署的Web应用界面。
总结
以上是小编为你收集整理的centos 7 中安装 docker和创建 tomcat容器并部署web应用全部内容。
如果觉得小编网站内容还不错,欢迎将小编网站推荐给好友。
原文地址:https://blog.csdn.net/whatday
Docker Compose 部署项目到容器 - 基于 Tomcat 和 mysql 的项目 yml 配置文件代码
场景
Docker-Compose 简介与 Ubuntu Server 上安装 Compose:
https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/100902301
Docker Compose 基本使用 - 使用 Compose 启动 Tomcat 为例:
https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/100904080
Docker Compose 部署项目到容器 - 基于 Tomcat 和 mysql 的商城项目 (附源码和 sql 下载):
https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/100941366
实现
version: ''3''
services:
web:
restart: always
image: tomcat
container_name: web
ports:
- 8080:8080
volumes:
- /usr/local/docker/myshop/ROOT:/usr/local/tomcat/webapps/ROOT
mysql:
restart: always
image: mysql:5.7.22
container_name: mysql
ports:
- 3306:3306
environment:
TZ: Asia/Shanghai
MYSQL_ROOT_PASSWORD: 123456
command:
--character-set-server=utf8mb4
--collation-server=utf8mb4_general_ci
--explicit_defaults_for_timestamp=true
--lower_case_table_names=1
--max_allowed_packet=128M
--sql-mode="STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION,NO_ZERO_DATE,NO_ZERO_IN_DATE,ERROR_FOR_DIVISION_BY_ZERO"
volumes:
- mysql-data:/var/lib/mysql
volumes:
mysql-data:
注:
这里是 mysql5.7.22
Docker | 制作tomcat镜像并部署项目
本文讲解如何制作自己的tomcat镜像,并使用tomcat部署项目
原料准备:
tomcat、jdk安装包,dockerfile文件
步骤
1、准备压缩包
jdk-8u301-linux-x64.tar.gz -> jdk1.8.0_301
apache-tomcat-7.0.107.tar.gz -> apache-tomcat-7.0.107
2、编写dockerfile文件
官方指定命名Dockerfile
,这样构建的时候不用加-f
参数指定文件
FROM centos
MAINTAINER xiao<find_onepiece@163.com>
COPY readme.txt /usr/local/readme.txt
ADD jdk-8u301-linux-x64.tar.gz /usr/local
ADD apache-tomcat-7.0.107.tar.gz /usr/local
RUN yum -y install vim
ENV MYPATH /usr/local
WORKDIR $MYPATH
ENV JAVA_HOME /usr/local/jdk1.8.0_301
ENV CLASSPATH $JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
ENV CATALINA_HOME /usr/local/apache-tomcat-7.0.107
ENV CATALINE_BASH /usr/local/apache-tomcat-7.0.107
ENV PATH $PATH:$JAVA_HOME/bin:$CATALINA_HOME/lib:$CATALINE_HOME/bin
EXPOSE 8080
CMD /usr/local/apache-tomcat-7.0.107/bin/startup.sh && tail -f /usr/local/apache-tomcat-7.0.107/bin/logs/catalina.out
3、执行构建
docker build -t diytomcat . # 自动寻找Dockerfile文件
构建成功:
Successfully built e68ad8caa2a4
Successfully tagged diytomcat:latest
4、启动容器
/webapps/test
部署的项目路径,浏览器访问ip:port/test
docker run -it -p 9090:8080 --name xiaoTomcat -v /home/xiao/build/tomcat/test:/usr/local/apache-tomcat-7.0.107/webapps/test -v /home/xiao/build/tomcat/tomcatlogs/:/usr/local/apache-tomcat-7.0.107/logs diytomcat
5、访问查看
数据卷挂载成功
6、发布项目
已经挂载了数据卷,所以编写宿主机的项目文件就可以了
在挂载路径 /home/xiao/build/tomcat/test
下
- 新建文件
web.xml
,内容如下:
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.4"
xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
</web-app>
- 新建文件
index.jsp
,内容如下:
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<body>
<h2>Hello World!</h2>
<h2>xiao</h2>
<%
System.out.println("my tomcat project logs");
%>
</body>
</html>
7、浏览器访问
url:ip:port/test
8、查看日志卷
tail -f catalina.out
完成从构建镜像到部署项目
我是 甜点cc
热爱前端,也喜欢专研各种跟本职工作关系不大的技术,技术、产品兴趣广泛且浓厚,等待着一个创业机会。本号主要致力于分享个人经验总结,希望可以给一小部分人一些微小帮助。
希望能和大家一起努力营造一个良好的学习氛围,为了个人和家庭、为了我国的互联网物联网技术、数字化转型、数字经济发展做一点点贡献。数风流人物还看中国、看今朝、看你我。
今天关于Docker 创建 tomcat 容器并部署 web 项目和docker搭建tomcat的分享就到这里,希望大家有所收获,若想了解更多关于3.在eclipse中创建Web项目,并部署到Tomcat上、centos 7 中安装 docker和创建 tomcat容器并部署web应用、Docker Compose 部署项目到容器 - 基于 Tomcat 和 mysql 的项目 yml 配置文件代码、Docker | 制作tomcat镜像并部署项目等相关知识,可以在本站进行查询。
本文标签: