Docker 安装与Tomcat部署

Docker 安装与Tomcat部署

虚拟机:VMware
Linux环境:CentOS 7
在这里插入图片描述

镜像(images):
容器(contenor):

一、VMware安装Linux镜像

1.Linux配置固定IP

Linux虚拟机配置静态IP

二、FinalShell远程连接Linux系统

  FinalShell:用于远程连接Linux。方便进行文件上传和下载。

1.查看Linux的IP地址

$: ifconfig

在这里插入图片描述

2.配置远程连接

在这里插入图片描述

在这里插入图片描述

3.连接成功

在这里插入图片描述

三、Linux安装Docker

1.切换成root用户并输入超级管理员密码:

$: sudo root

2.使用阿里云资源安装Docker:

$: curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun

3.设置Docker开机自启动:

$: systemctl enable docker #开机自启
$: systemctl start docker #启动 Docker

4.配置镜像源:

可快速、高效地拉取镜像。Docker默认镜像仓库在国外,拉取速度可能比较慢。

①配置镜像源:
$: vim /etc/docker/daemon.json

ps: vim或vi编辑器:
指令:i 插入或修改;
指令:Esc 提出插入或修改
指令:wq! 保存修改并退出
指令:q! 退出不修改
在daemon.json中配置数据源(此次使用中科大的数据源,也可使用其他,如阿里云)

{
  "registry-mirrors": ["http://docker.mirrors.ustc.edu.cn"]
}

在这里插入图片描述

②重新加载docker配置:
$: systemctl daemon-reload
$: systemctl restart docker
③查看Docker服务情况:
$: systemctl status docker.service

在这里插入图片描述

5.报错解决:

①启动Docker报错如图:

在这里插入图片描述

解决方式:
关闭防火墙,重启Docker

$: systemctl status firewalld  ##查看防火墙状态
$: systemctl stop firewalld    ##关闭防火墙
$: systemctl restart docker    ##重启 Docker
②宿主机无法访问Docker

解决方式如下:

$: sudo service docker stop
$: sudo ip link set dev docker0 down            ##关闭docker虚拟网卡
$: sudo brctl delbr docker0
$: sudo iptables -t nat -F POSTROUTING
$: sudo brctl addbr docker0               ##172.16.10.1/24 是Docker在Linux的默认地址
$: sudo ip addr add 172.16.10.1/24 dev docker0 
$: sudo ip link set dev docker0 up              ##开启docker虚拟网卡
$: vim /etc/docker/daemon.json
    {
        "registry-mirrors": ["http://224ac393.m.daocloud.io"],
        "bip": "172.16.10.1/24"
    }
$: systemctl restart docker

四、Docker连接安全协议配置(TLS)

需要开放Docker 2375远程连接端口必须:
Docker连接安全协议配置

五、项目部署

资源文件:
JDK8
Tomcat

1.镜像的制作

①拉取centos 7镜像:
$: docker pull centos:7

查看所有镜像:

$: docker images
②创建目录准备制作镜像:
$: mkdir purui-server && cd /purui-server   ##创建并进入目录,用于临时存放制作镜像的文件
③准备JDK和Tomcat

jdk、tomcat、Dockerfile必须在同一目录下面

在这里插入图片描述

④创建Dockerfile文件:

Dockerfile 是一个文本文件,其内包含了一条条的指令(Instruction),用于构建镜像。每一条指令构建一层镜像,因此每一条指令的内容,就是描述该层镜像应当如何构建。

$: vim Dockerfile
FROM centos:7  ## 制作镜像用的,最基础镜像
MAINTAINER Nagisa ## 镜像维护者

## 配置JDK
RUN mkdir /usr/soft
RUN mkdir /usr/local/jdk
COPY jdk-8u221-linux-x64.tar.gz /usr/soft/jdk-8u221-linux-x64.tar.gz
RUN tar xvf /usr/soft/jdk-8u221-linux-x64.tar.gz -C /usr/local/jdk
RUN rm -rf /usr/soft/jdk-8u221-linux-x64.tar.gz

## 配置Tomcat
RUN mkdir -p /usr/local/tomcat
COPY apache-tomcat-9.0.35.tar.gz /usr/soft/apache-tomcat-9.0.35.tar.gz
RUN tar xvf /usr/soft/apache-tomcat-9.0.35.tar.gz -C /usr/local/tomcat
RUN rm -rf /usr/soft/apache-tomcat-9.0.35.tar.gz

## 配置环境变量
ENV JAVA_HOME /usr/local/jdk/jdk1.8.0_221 ## JDK 压缩包解压后的名称
ENV CATALINA_HOME /usr/local/tomcat/apache-tomcat-9.0.35 ## Tomcat解压后的名称
ENV PATH $PATH:$JAVA_HOME/bin:$CATCHA_HOME/bin
ENV PATH $PATH:$CATCHA_HOME/bin

##在制作镜像的时候,就打包项目拷贝到tomcat webapps目录中
##ADD *****.war /usr/local/tomcat/apache-tomcat-9.0.35/webapps/

## 内部开启服务端口
EXPOSE 8080

## 最后启动sshd进程,防止容器启动后不见
CMD ["./usr/local/tomcat/apache-tomcat-9.0.35/bin/catalina.sh", "run"]

注意: 压缩包解压后的文件名称是什么样的
jdk-8u221-linux-x64.tar.gz 解压后文件夹名称:jdk1.8.0_221
apache-tomcat-9.0.35.tar.gz 解压后文件夹名称:apache-tomcat-9.0.35

⑤制作镜像:

注意以下命令结尾的 . 表示当前目录

$: docker build -t purui/tomcat:0.0.1 .

说明:
生成的镜像名称:purui/tomcat
生成的镜像Tag:0.0.1
制作镜像成功:
在这里插入图片描述

查看制作的镜像:
在这里插入图片描述

⑥测试生成容器:

$: docker run --name=testServer -p 8080:8080 -d purui/tomcat:0.0.1 

在这里插入图片描述

以上命令说明:
使用名为:purui/tomcat:0.0.1 的镜像创建一个新的容器运行
设置新容器的名称 --name testServer
设置新容器的端口 -port 8080

$: docker logs -f 97262390e71b   ## 通过容器,查看容器启动的日志
或
$: docker logs -f testServer   ## 通过容器名称,查看容器启动的日志

以上命令说明:
-f 控制台实时输出日期
97262390e71b 是容器ID
效果如上图。

测试容器启动成功:
在这里插入图片描述

2.运行容器

①挂载目录并启动:

首先,将项目文件拷贝到宿主机/usr/local/tomcat/webapps目录下,并执行以下命令

docker run 
-d               
--name tomcatDev   ## 创建的容器名称
-p 8080:8080       ## 宿主机端口:容器内部端口
-v /usr/local/tomcat/webapps:/usr/local/tomcat/apache-tomcat-9.0.35/webapps 
--privileged=true   ## 允许Docker挂载目录
--restart=always    ## Docker启动时,自动运行容器
purui/tomcat:0.0.1  ## 创建容器使用的镜像
运行成功:

ps:需要部署更新项目,只需要将更新的项目,重新拷贝到宿主机/usr/local/tomcat/webapps目录下即可
在这里插入图片描述
在这里插入图片描述

镜像移植

导出镜像:

docker save -o /images/tomcat9.tar purui/tomcat:0.0.1

导入镜像:

docker load --input tomcat9.tar
docker load -i tomcat9.tar
docker load < tomcat9.tar

Dockerfile 解决问题汇总

# 制作镜像使用的基础镜像
FROM centos:7    
MAINTAINER Purui

# 设置容器编码:解决容器内部中文乱码、不能识别中文
env LANG en_ZW.utf8
env LC_ALL en_ZW.utf8

# 添加字体  解决容器无宋体字体,导致打印格式的问题
RUN yum install -y fontconfig mkfontscale
RUN mkdir -p /usr/share/fonts/my_fonts
COPY SIMSUN.TTC /usr/share/fonts/my_fonts
RUN chmod -R 755 /usr/share/fonts/my_fonts
RUN mkfontscale && mkfontdir && fc-cache -fv
RUN fc-list

# 配置JDK环境
RUN mkdir /usr/soft
RUN mkdir /usr/local/jdk
COPY jdk-8u221-linux-x64.tar.gz /usr/soft/jdk-8u221-linux-x64.tar.gz
RUN tar xvf /usr/soft/jdk-8u221-linux-x64.tar.gz -C /usr/local/jdk
RUN rm -rf /usr/soft/jdk-8u221-linux-x64.tar.gz

# 配置Java环境
RUN mkdir -p /usr/local/tomcat
COPY apache-tomcat-9.0.35.tar.gz /usr/soft/apache-tomcat-9.0.35.tar.gz
RUN tar xvf /usr/soft/apache-tomcat-9.0.35.tar.gz -C /usr/local/tomcat
RUN rm -rf /usr/soft/apache-tomcat-9.0.35.tar.gz
 
#配置环境变量
ENV JAVA_HOME /usr/local/jdk/jdk1.8.0_221
ENV CATALINA_HOME /usr/local/tomcat/apache-tomcat-9.0.35
ENV PATH $PATH:$JAVA_HOME/bin:$CATCHA_HOME/bin
ENV PATH $PATH:$CATCHA_HOME/bin

# 设置容器端口
EXPOSE 8080

# 设置容器运行,启动tomcat
CMD ["./usr/local/tomcat/apache-tomcat-9.0.35/bin/catalina.sh", "run"]

  • 3
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: 使用Docker安装Tomcat部署WAR包的步骤如下: 1.首先需要安装DockerDocker Compose。 2.创建一个Dockerfile文件,其包括Tomcat安装和配置。 3.将WAR包复制到Dockerfile所在的目录。 4.创建一个docker-compose.yml文件,其包括Tomcat容器的配置和WAR包的挂载。 5.执行docker-compose up命令启动容器。 6.访问http://localhost:8080/deployed_war_file路径,即可查看部署的WAR包应用。 ### 回答2: 首先,为了在Docker部署Tomcat,我们需要创建一个Docker镜像,该镜像包含了Tomcat安装和配置。我们可以使用一个基础镜像(如CentOS),在其安装Tomcat,然后保存该镜像以便以后使用。我们可以使用Dockerfile来构建这个镜像Dockerfile包含了所有步骤,可以简化镜像的构建和维护。 以下是一个使用Dockerfile构建Tomcat镜像的示例: ``` FROM centos:latest RUN yum -y install wget RUN wget http://archive.apache.org/dist/tomcat/tomcat-8/v8.5.23/bin/apache-tomcat-8.5.23.tar.gz RUN tar -xzf apache-tomcat-8.5.23.tar.gz RUN mv apache-tomcat-8.5.23 /usr/local/tomcat ENV CATALINA_HOME /usr/local/tomcat ENV PATH $CATALINA_HOME/bin:$PATH EXPOSE 8080 CMD [“catalina.sh”, “run”] ``` 这个Dockerfile执行以下操作: - 基于CentOS镜像构建一个新的镜像 - 安装wget,以便后续下载Tomcat - 下载Tomcat 8.5.23版本的压缩包,并解压到/usr/local/tomcat目录下 - 设置环境变量CATALINA_HOME和PATH - 暴露Tomcat的默认端口8080 - 启动Tomcat 使用以上Dockerfile创建TomcatDocker镜像,然后我们就可以在该镜像部署war包。war包是Web应用程序的一种打包方式,通常包含了所有的源代码、配置文件和依赖库。war包可以通过Tomcat的webapps目录进行部署。 以下是具体的步骤: 1. 将war包放到一个本地目录下,如:/data/webapp/ 2. 使用以下命令将war包拷贝到Tomcat的webapps目录下: ``` docker run -it -v /data/webapp:/usr/local/tomcat/webapps my-tomcat-image cp /data/webapp/my-webapp.war /usr/local/tomcat/webapps/ ``` 其,/data/webapp是本地目录,my-tomcat-image是TomcatDocker镜像名称,my-webapp.war是要部署的war包名称。 3. 启动Tomcat容器,命令如下: ``` docker run -d -p 8080:8080 my-tomcat-image ``` 其,-d表示在后台运行容器,-p表示将Tomcat的端口8080映射到主机的端口8080。 完成以上步骤后,Tomcat容器将会在后台运行部署的web应用程序也会自动启动。我们可以使用浏览器访问http://localhost:8080/my-webapp来访问该应用程序。 ### 回答3: Docker 是一种轻量级的容器化技术,可以将应用程序和其依赖的库打包成一个可移植的容器,方便部署和管理。Tomcat 是一个常用的 Java Web 应用程序服务器,通过 Docker 可以快速部署运行 Tomcat。以下是在 Docker 安装 Tomcat部署 war 包的步骤: 1. 安装 DockerLinux 下可以通过命令行方式安装 Docker。在 Windows 和 macOS 下可以通过 Docker Desktop 进行安装。 2. 下载 Tomcat 镜像Docker Hub 上搜索 Tomcat 镜像,选择适合的版本进行下载。 3. 启动容器 使用下载的 Tomcat 镜像启动一个容器: ``` docker run -d --name=my-tomcat -p 8080:8080 tomcat:latest ``` 上述命令会在后台启动一个名为 my-tomcat 的容器,并将主机的 8080 端口映射到容器的 8080 端口。 4. 上传 war 包 将需要部署的 war 包上传到容器: ``` docker cp app.war my-tomcat:/usr/local/tomcat/webapps/ ``` 上述命令将 app.war 拷贝到容器内 Tomcat 的 webapps 目录。 5. 访问应用程序 在浏览器访问容器所在主机的 8080 端口: ``` http://localhost:8080/app ``` 其,app 是 war 包的文件名(不包含 .war 后缀)。 以上就是在 Docker 安装 Tomcat部署 war 包的步骤。 Docker 技术的魅力在于它的可移植性和易于管理,使得应用程序的部署和维护变得更加简单和高效。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值