折腾Docker后,学会如何部署WAR并运行

自我修养之原情陈述:个人接触Docker时间比较晚,最近才开始认真学习使用,虽然面临诸多困难,可为了探索新技术,凭借着程序员的特有的骄傲品质,最终还是实现了在docker中运行war项目。

另外,本文不是系统性介绍docker的使用,旨在记录实现的过程,只能呈现关键步骤,争取让大家对docker的使用有个入门了解。

命令操作:
1. 安装Docker
sudo zypper in docker
2. 启动docker守护进程(还可参考这篇文章
sudo systemctl start docker.service
3. 利用Docker命令,拉取镜像Image并启动容器Container,搜索镜像
这里写图片描述
docker pull tomcat
docker pull mysql
如果没有权限,请加上sudo
3. 怎么使用mysql镜像?
docker run --name some-mysql -e MYSQL_ROOT_PASSWORD=my-secret-pw -d mysql:tag
参数说明:

"come-mysql":指定容器的名称
"my-secret-pw":数据库中root用户的密码
":tag":版本标签,由于上面我们已经拉取了最新的版本,这句代码参数可省略掉变成

docker run --name some-mysql -e MYSQL_ROOT_PASSWORD=my-secret-pw -d mysql
比如:指定mysql的容器名称叫:msql,指定的root用户密码为:root
docker run --name msql -e MYSQL_ROOT_PASSWORD=root -d mysql

这里写图片描述
执行成功后,查看容器状态,可以看mysq已经成功运行起来罗:
docker ps

这里写图片描述

在mysql跑起来后,我们可以用navicat来连接到数据库,提取码:adqx
这里写图片描述
由于是英文版本,请自行配置中文字体,避免在某些地方(如查询窗口中输入中文时)出现乱码,位置:Tools–>Options–>Appearance-Font,你可能想用的字体
这里写图片描述

  1. 怎么使用tomcat镜像?
    docker run -it --rm -p 8888:8080 -v /home/xxx/testwar/:/usr/local/tomcat/webapps/ --name tomcat tomcat

参数说明:

"8888:8080":将容器中的8080端口映射到本地的8888端口,这样我们在本地就可以通过8888端口访问我们自己部署的项目了( 比如:localhost/:8888/tomcat中的项目名称)
"/home/xxx/testwar/":本地目录路径
"/usr/local/tomcat/webapps/":docker中tomcat容器的虚拟路径

多说两句:

8888:本地主机的端口
8080:Docker容器中的默认端口

根据docker的tomcat镜像使用方法
这里写图片描述

$ docker run -it --rm tomcat:8.0这个命令启动tomcat后可以让我们直接通过http://container-ip(容器IP):8080。这种不能直接用http://localhost:8080看到tomcat首页,必须要是容器IP才可以,我测试时是172.17.xxx.xxx的形式,查看容器IP的方法,请往下看第二段。

$ docker run -it --rm -p 8888:8080 tomcat:8.0这个命令就做到了上面提到的端口映射,执行后我就们可以在本地通过http://localhost:8888 or http://host-ip(主机IP):8888访问部署的项目了。

  • tomcat:8.0冒号和8.0是指定dokcer 运行的tomcat版本,不加版本号的话,就会运行最新的tomcat

两个路径之间通过一个冒号进行映射,为什么这样做,因为tomcat镜像是运行在容器中的,而根据docker的设计理念(每个容器互不干扰,且各自划分主机硬件资源),每个容器都会有一个网络IP地址。
通过命令:
docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' container_name_or_id(容器的名称或者id)
示例:控制台直接输出容器的IP地址
这里写图片描述

我们拿到这里的IP后,有什么用呢?
运行war项目前,我们需要设置数据源的信息,那么mysql容器的IP就是我在项目的数据源文件中设置的地址,这样才能保证项目启动后能正常连接到数据库。
其它连接方式:不同容器之间进行通信,如下:
docker:从 tomcat 容器连接到 mysql 容器

以上整理的资料,都是比较简单的,可能不全,深度太浅,如有不对恳切指正,最后希望能帮到各位
  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答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创建Tomcat的Docker镜像,然后我们就可以在该镜像上部署warwar是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是Tomcat的Docker镜像名称,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. 安装 Docker 在 Linux 下可以通过命令行方式安装 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 技术的魅力在于它的可移植性和易于管理,使得应用程序的部署和维护变得更加简单和高效。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值