docker之Tomcat web应用部署

以下是以公网web镜像进行部署测试。
一、 准备工作

  1. 关闭selinux服务
    getenforce 查看selinux状态,并关闭selinux,否则启动docker时会报错。
    [[email protected] ~]# getenforce 查看selinux状态
    Disabled
    修改selinux配置文件

    docker启动报错信息:

    修改完selinux后重启服务器:
    [[email protected] ~]# reboot
    (注:安装软件为docker的可能会遇到这个问题,安装软件为docker-ce可能不会遇到。)
  2. 下载安装docker-ce
    [[email protected] ~]#yum list | grep docker-ce 检查yum 源的docker包信息
    [[email protected]~]#yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo 安装rpm更新源
    [[email protected] ~]# yum list docker-ce --showduplicates | sort –r 查看仓库中docker版本
    [[email protected] ~]#yum install -y docker-ce 安装docker
    [[email protected] ~]#systemctl strat docker.service 启动docker程序
    [[email protected] ~]# systemctl status docker.service 查看docker运行状态


[[email protected] ~]#systemctl enable docker.service 添加开机启动
[[email protected] ~]# docker version 查看docker版本
Client: Docker Engine - Community
Version: 19.03.5
API version: 1.40
Go version: go1.12.12
Git commit: 633a0ea
Built: Wed Nov 13 07:25:41 2019
OS/Arch: linux/amd64
Experimental: false

  1. 部署jave环境
    wget https://download.oracle.com/otn/java/jdk/8u231-b11/5b13a193868b4bf28bcb45c792fce896/jdk-8u231-linux-x64.tar.gz?AuthParam=1575959715_a901df40b664e3cff9415b957ddf441e
    [[email protected] ~]# docker cp jdk-8u231-linux-x64.tar.gz 4c069f9a9851:/root 将jdk拷贝到容器中
    拷贝命令:docker cp <.bashrc文件路径> <镜像name或image_ID>:<文件存放路径>
    [[email protected] ~]# docker exec -it tomcat /bin/bash 进入Tomcat容器
    [email protected]:~# cd /root/
    [email protected]:~# tar -zxvf jdk-8u231-linux-x64.tar.gz 解压jdk
    修改环境变量,在.bashrc中添加jdk变量,添加以下代码。
    export JAVA_HOME=/usr/lib/jvm/jdk1.8.0_231
    export JRE_HOME=${JAVA_HOME}/jre
    export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
    export PATH=${JAVA_HOME}/bin:$PATH

    重启Tomcat容器:
    [[email protected] src]# docker ps -a
    CONTAINERID IMAGE COMMAND CREATED STATUS PORTS NAMES
    e14bcf5dd711 training/sinatra "/bin/bash" 19 hours ago Exited (0) 19 hours ago kind_golick
    4c069f9a9851 tomcat "catalina.shrun" 19 hours ago Up 17h ours 0.0.0.0:8081->8080/tcp tomcat
    [[email protected] src]# docker restart 4c069f9a9851

    [[email protected] src]# docker restart tomcat
    二、 安装web应用
    [[email protected] ~]# docker search tomcat 在网上服务器查找有关Tomcat镜像信息

    我们选择“STARS”资源最多的进行拉取
    [[email protected] ~]# docker pull docker.io/tomcat 拉取Tomcat镜像
    [[email protected] ~]# docker run -d --name tomcat -p 8081:8080 docker.io/tomcat 后台运行Tomcat镜像
    若端口被占用,可以指定容器和主机的映射端口,前者是外围访问端口,后者是容器内部端口。 -d参数:容器会在后台运行并不会把输出的结果打印到宿主机上面。使用 -d 参数启动后会返回一个唯一的 id。
    注:在此处遇到在不运行这条命令时Tomcat镜像无法启动。错误如下:
    [[email protected] ~]# docker start docker.io/tomcat
    Error response from daemon: No such container: docker.io/tomcat
    Error: failed to start containers: docker.io/tomcat
    其次在查看镜像状态时,不显示任何信息:
    [[email protected] ~]# docker ps -a
    CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES

[[email protected] ~]# docker run -d --name tomcat -p 8081:8080 docker.io/tomcat

[[email protected] ~]# systemctl status firewalld.service 查看防火墙运行状态

[[email protected] ~]# docker start tomcat
注:
前提:在此处由于前面将防火墙关闭,导致在启动Tomcat镜像时,无法启动。
原因:由于Tomcat镜像需要用到NAT服务,关闭防火墙导致NAT服务无法使用。
问题信息:
[[email protected] ~]# docker start tomcat
Error response from daemon: driver failed programming external connectivity on endpoint tomcat (826ed3a9043296bc37b913c8f0cd900fe7424ffdcb93ff22d5f95fc39070a21f): (iptables failed: iptables --wait -t nat -A DOCKER -p tcp -d 0/0 --dport 8081 -j DNAT --to-destination 172.17.0.2:8080 ! -i docker0: iptables: No chain/target/match by that name.

[[email protected] ~]# docker ps –a 查看镜像信息

注意Tomcat镜像的PORTS信息是否是0.0.0.0:8081->8080/tcp内容,是的话直接访问IP:8081,不是的话可能需要做NAT转换,自定义端口访问。
三、 效果图

四、 部署网页测试
将web数据拷贝到Tomcat容器中
[[email protected] ~]# docker cp XXX.war 4c069f9a9851:/usr/local/tomcat/webapps
[[email protected] ~]# docker exec -it 4c069f9a9851 /bin/bash 进入Tomcat容器
[email protected]:/usr/local/tomcat# cd webapps/
[email protected]:/usr/local/tomcat/webapps# ls
ROOT docs examples host-manager index.html manager
退出docker容器,Ctrl+p+q
重新启动容器,docker restart tomcat
到此web部署就算完成了。
可参考:https://blog.csdn.net/liqz666/article/details/82180581
五、 常用命令
ip addr/ip link/ ifconfig:查看宿主机里ip地址(宿主机表示是虚拟机)

systemctl start docker/service start docker:启动docker服务

systemctl stop docker:关闭docker服务

docker run:启动container

docker seach xxxx(镜像名称):检索镜像

docker pull xxx(镜像名称):拉取镜像

docker images:列出镜像

docker --version:查看docker的版本信息

docker exec Container Id:进入容器

docker exec -it NAMES(自定义名称) /bin/bash:进入--name命名的容器

docker exec NAMES(容器的自定义名称)-it bash:进入容器里进行操作

docker attach Container Id:进入到容器的终端

docker inspect IMAGE ID:显示容器或镜像的元数据

[[email protected](container id)]:比如[email protected]表示已进入docker里的一个CONTAINER ID的容器内部

docker ps:查看docker里运行的容器(status为Up....表示运行中)

docker ps -a:查看docker里已停止或正在运行的容器(status为Exit)

docker start CONTAINER ID :如果容器的状态为Exit,用它来启动容器

docker stop CONTAINER ID :停止正在运行的容器,删除一个容器必须先要停止

docker restart :当部署web项目的war文件,到tomcat里的webapps里面了,重启一下docker服务,就自动解压了war文件

docker rm CONTAINER ID :删除容器

docker rm $(docker ps -a -q):删除所有已停止的容器;

docekr rmi IMAGE ID:删除镜像

rm -rf xxxx:强制删除某个war.文件或目录、文件

docker cp /xxx.war CONTAINER ID :/usr/local/tomcat/webapps:从/根目录复制一个打包后的Java web war文件 到tomcat容器里的webapps工作目录里

docker exec CONTAINER ID ls /usr/local/tomcat:默认的 安装tomcat镜像的webapps目录

docker run -name xxx -p (自定义端口号,用来访问的):(容器的端口号:比如tomcat的8080,mysql的3306) -d docker.io/tomcat(镜像名称):表示在docker里运行一个tomcat容器,如果没有镜像,自动pull一个tomcat的镜像
docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
--name 为容器取一个名字

-p 容器要映射的端口号

-d:后台运行

-t:进入终端

-i:获得一个交互式的连接,通过获取container的输入

/bin/bash:在container中启动一个bash shell

举例:docker run --name tomcat -p 8081:8080 -d tomcat

六、 查看docker日志
[[email protected] ~]# journalctl -u docker.service 查看docker日志
(docker日志查看详解https://blog.csdn.net/warrior_0319/article/details/79713155)

原文地址:https://blog.51cto.com/3001441/2464153

时间: 2024-08-02 01:44:12

docker之Tomcat web应用部署的相关文章

Docker构建和Web应用部署

Docker构建和Web应用部署 Git优点:(一台电脑即可以是客户端,也可以是服务器:工作过程中,可以断网) 适合分布式开发,强调个体: 公共服务器压力和数据量都不会太大: 速度快,灵活: 可以离线工作. SVN优点:(一台的服务器控制很多客户端,使用过程中不能断网) 管理方便.逻辑明确: 集中式管理更能保证安全性: 适合开发人数不多的项目开发. 1 .部署Jenkins[[email protected] ~]# wget https://pkg.jenkins.io/redhat-stab

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

一.安装Tomcat 1.查找Docker Hub上的tomcat镜像 docker search tomcat 2.拉取官方的镜像 docker pull tomcat 等待下载完毕,需要一些时间. 3.查看docker所有的镜像 docker images 4.启动tomcat镜像 注:前者是外围访问端口:后者是容器内部端口 docker run -d -p 8080:8080 tomcat 注:前者是外围访问端口:后者是容器内部端口 如下命令可后台启动tomcat -d: 后台运行容器,并

CentOS6.x下,tomcat - web项目部署

1. 安装tomcat tomcat安装方法:http://www.cnblogs.com/vurtne-lu/p/6478440.html 2. 配置tomcat 修改server.xml文件 <!-- 使用 80 端口 (也可以使用其它端口)--> <Connector port="80" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="844

在docker中用Tomcat运行web项目

本文旨在用最通俗的语言讲述最枯燥的基本知识 上一篇文章<为什么要用docker>已经讲述了什么是docker以及我们要用docker的原因,并且讲解了如何安装docker.这时候很多读者磨拳擦脚跃跃欲试但却发现安装好docker之后就无从下手了,那么,接下来,小编会从以下方面讲述docker的一些基础知识,当然,理论都是生硬的,所以小编选取了javaweb项目中最常用的一个软件--tomcat的安装和使用来引导学习一些docker相关的知识,借此让读者能够从实战的角度去理解docker为什么会

docker学习4-docker安装tomcat环境和部署war包

前言 tomcat部署web项目非常方便,把war包放到webapps目录就可以了.本篇使用docker快速搭建一个tomcat环境 下载tomcat镜像 拉取官方最新版tomcat镜像 [[email protected] ~]# docker pull tomcat Using default tag: latest latest: Pulling from library/tomcat 6f2f362378c5: Pull complete 494c27a8a6b8: Pull compl

Tomcat Maven Plugin部署Maven Web应用

Tomcat官方提供了Maven插件用于部署基于Maven的Web应用,不同版本Tomcat使用的插件不同,不同版本插件的使用也有一定区别,详细信息可参考http://tomcat.apache.org/maven-plugin.html.下面记录的是我在Eclipse环境中使用Tomcat Maven Plugin-2.2在Tomcat7中部署Maven Web应用的配置过程: 第一步:配置Tomcat manager用户: 打开Tomcat根目录下conf目录中的tomcat_user.xm

通过Intellij IDEA 14.1将web应用部署到docker容器

2015年2月4日发布的IntelliJ IDEA 14.1宣布支持Docker,详情:Docker Support in IntelliJ IDEA 14.1 本文主要介绍IntelliJ IDEA 14.1中部署docker容器的方法. 1.下载安装IntelliJ IDEA 14.1() http://www.jetbrains.com/idea/ 2.下载安装插件Docker-plugin.jar 3. 配置远程docker 4.在web项目中新建目录docker-dir和文件Docke

Eclipse中web项目部署至Tomcat步骤

Eclipse的web工程至Tomcat默认的部署目录是在工程空间下,本文旨在将部署目录改为Tomcat安装目录,并解决依赖包输出问题. 1.在Eclipse中添加Tomcat服务器. 2.将web工程发布至tomcat: 选择刚添加的Tomcat: 此时Eclipse将自动生成Servers工程: 3.在Servers视图,Remove删除刚刚发布的项目: 4.打开Tomcat服务器配置项: 5.修改以下两个配置项,Tomcat保持启动状态,否则Server Locations一栏变灰色,不可

Docker化tomcat 并且使用maven热部署

今天没事干 就把自己的tomcat  docker化并且使用maven实现热部署 特别记录一下~ 1.首先进行centos7的安装 就不在记录了 注意的是最好使用centos7 因为docker 依赖 namespace和cgroups 对于低版本的centos内核 支持性不是很好 2.接下来进行安装docker一条命令就完事 1 yum install -y docker 3.启动docker容器 1 systemctl start docker.service 4.修改docker镜像地址(