docker安装与部署javaweb项目

   日期:2024-12-26    作者:b1247086 移动:http://ljhr2012.riyuangf.com/mobile/quote/55844.html

现在用docker部署应用已经是一种比较流行的方式了,本人最近也对docker这种技术做了一下学习,将学习的知识点做下总结。

这篇谈谈docker的安装与tomcat环境的搭建以及部署javaweb应用,安装环境为ubuntu系统。

为方便起见,下面的操作都约定在root用户下操作,先切换到root用户下。

1.安装docker

按照网上的资料先尝试官网的安装方式,但是到了安装步骤apt-get -y install docker-ce长时间等待都没有安装成功,最后选择的是采用阿里云的镜像的方式安装成功。采用阿里云镜像的安装方式如下

1)先更新系统的源

apt-get update

2)安装curl

apt-get install curl

3)安装docker

 

4)安装完成后输入如下命令验证是否安装成功

docker version

出现

说明安装成功。

2.体验第一个容器hello-world

docker安装完成后,先来看看如何启动一个容器。启动容器的步骤先得到一个镜像,然后用镜像去启动启动容器。

输入如下命令:

docker images

会显示

系统中目前中还没有镜像。

用如下命令搜索镜像hello-world

docker search hello-world

可以看到有好多已经做好的hello-world镜像。现在下载镜像

docker pull hello-world

上述命令执行后会下载镜像,然后再用images命令查看可以看到本地已经有该镜像了。

然后利用镜像启动容器。

docker run hello-world

可以看到如下信息

说明容器已经成功启动。

docker还有些常用的命令

docker exec -it “容器ID” bash  #启动已经存在的容器

docker start "容器ID" #启动已经存在的容器

docker stop "容器ID" #关闭正在运行的容器

 

3.制作基础的tomcat环境镜像

制作tomcat镜像的方式有两种,一种是直接下载仓库中现有的成熟的tomcat镜像。

docker pull tomcat

执行上述命令就下载了一个可以直接运行的tomcat镜像到本地。为了更好学习,手工制作的方式也要会,下面说下手工制作方式。

先下载好制作镜像需要的jdk安装包和tomcat安装包,我使用的是

jdk-8u191-linux-x64.tar.gz和apache-tomcat-8.5.37.tar.gz

然后还要准备好一个最基础的镜像,就像在windows上安装软件一样,需要一个windows系统。

docker pull ubuntu-16.04

下载基础镜像到本地,得到如下镜像,下面的操作都是建立在这个镜像基础上。

执行下面的命令

docker run -i -t -v /root/software/:/mnt/software/ coreapps/ubuntu16.04:latest /bin/bash

这条命令比较长,我们稍微分解一下,其实包含以下三个部分: 
docker run <相关参数> <镜像 ID> <初始命令> 
其中,相关参数包括: 
-i:表示以“交互模式”运行容器 
-t:表示容器启动后会进入其命令行 
-v:表示需要将本地哪个目录挂载到容器中,格式:-v <宿主机目录>:<容器目录> 
假设我们的所有安装程序都放在了宿主机的/root/software/目录下,将其挂载到容器的/mnt/software/目录下。 

执行完上述命令以后,现在我们已经进入到了容器里面,以下的几部操作都是在容器里面进行的。
安装 JDK 与 Tomcat,不妨选择/opt/目录作为安装目录,首先需要通过cd /opt/命令进 入该目录。

安装jdk

tar -zxf /mnt/software/jdk-8u191-linux-x64.tar.gz

安装tomcat

tar -zxf /mnt/software/apache-tomcat-8.5.37.tar.gz

编写一个脚本,当启动容器时,运行该脚本,启动tomcat服务。

创建脚本

vim /root/run.sh

编写脚本

#!/bin/bash
export JAVA_HOME=/opt/jdk1.8.0_191
export PATH=$PATH:$JAVA_HOME
sh /opt/apache-tomcat-8.5.37/bin/catalina.sh run

jdk1.8.0_19和apache-tomcat-8.5.37为上面解压后的解压目录

为脚本添加执行权限

chmod u+x /root/run.sh

完成以上步骤后使用exit退出容器。

执行以下命令可以查看系统当中的容器。

docker ps -a

找到刚才创建的容器,这里我的容器ID为f2aa0efb5882。

使用以下命令,根据某个“容器 ID”来创建一个新的“镜像”

docker commit f2aa0efb5882 javaweb:0.1

上面利用我们修改后的容器再生成一个新的镜像,这个镜像相当于一个在操作系统上集成了tomcat环境的镜像。

然后利用这个新生成的镜像启动一个容器,那容器就是具有tomcat环境的容器了。

利用新镜像启动容器

docker run -d -p 58080:8080 --name javaweb javaweb:0.1 /bin/bash /root/run.sh

在浏览器中,输入以下地址,即可访问 Tomcat 首页: 
 

上面的IP地址为容器的宿主机的IP地址。

4.制作javaweb项目镜像

上面制作基础tomcat环境的镜像是利用容器生产的镜像,还可以利用Dockerfile来制作镜像。

准备一个已经打包好的java项目war包,假定为demo.war

在root目录下创建Dockerfile文件,文件内容如下

from javaweb:0.1
MAINTAINER carter@qq.com
COPY demo.war /opt/apache-tomcat-8.5.37/webapps/

执行build命令来构建一个镜像

docker build -t demo:0.0.1 .

参数说明

1)-t  指定要创建的目标镜像名(这里指定镜像名为seckill,tag为0.0.1)

2). Dockerfile 文件所在目录

查看创建好的镜像,我实验的镜像ID为d895d3084969

利用镜像启动一个容器。

docker run -d -p 58080:8080  demo:0.0.1

在浏览器中输入

打开页面成功,说明部署成功。

参考

https://blog.csdn.net/qq_28426351/article/details/51142025

https://www.cnblogs.com/xuwenjin/p/9032540.html


特别提示:本信息由相关用户自行提供,真实性未证实,仅供参考。请谨慎采用,风险自负。


举报收藏 0评论 0
0相关评论
相关最新动态
推荐最新动态
点击排行
{
网站首页  |  关于我们  |  联系方式  |  使用协议  |  隐私政策  |  版权隐私  |  网站地图  |  排名推广  |  广告服务  |  积分换礼  |  网站留言  |  RSS订阅  |  违规举报  |  鄂ICP备2020018471号