docker安装与部署javaweb项目

  • Post author:
  • Post category:java


现在用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

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

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

docker version

出现

Client:
 Version:           18.09.0
 API version:       1.39
 Go version:        go1.10.4
 Git commit:        4d60db4
 Built:             Wed Nov  7 00:48:57 2018
 OS/Arch:           linux/amd64
 Experimental:      false

说明安装成功。

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

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

输入如下命令:

docker images

会显示

REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE

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

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

docker search hello-world

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

docker pull hello-world

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

REPOSITORY                     TAG                 IMAGE ID            CREATED             SIZE
hello-world                    latest              4ab4c602aa5e        3 months ago        1.84kB

然后利用镜像启动容器。

docker run hello-world

可以看到如下信息:

Hello from Docker!
This message shows that your installation appears to be working correctly.

说明容器已经成功启动。

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

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

REPOSITORY                     TAG                 IMAGE ID            CREATED             SIZE
coreapps/ubuntu16.04           latest              7062e9292df7        5 days ago          706MB

执行下面的命令:

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环境的镜像。


REPOSITORY                     TAG                 IMAGE ID            CREATED             SIZE
javaweb                    0.1                 3af8c1508d3c        3 days ago          1.15GB         
coreapps/ubuntu16.04           latest              7062e9292df7        5 days ago          706MB

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

利用新镜像启动容器

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

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


http://10.0.0.41:58080/

上面的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

在浏览器中输入:

http://10.0.0.41:58080/demo

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

参考:


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


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



版权声明:本文为w450093854原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。