博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
linux安装docker部署java项目
阅读量:2061 次
发布时间:2019-04-29

本文共 3275 字,大约阅读时间需要 10 分钟。

大家好,我是烤鸭:

分享一下linux上部署docker的javaweb项目

 

1.环境

linux centos 7.2

64-bit 系统

kernel 3.10+

 查看版本号 :

uname -r

大于3.10即可

2.安装docker

这里是官网安装教程

说一下docker ce 和ee版的区别,ce是社区版免费的,ee是企业版,收费的。

简述几个安装命令,一路打下来就好。

2.1.移除之前定的安装:

yum remove docker \                  docker-common \                  docker-selinux \                  docker-engine

2.2.设置仓库:

yum-config-manager \    --add-repo \    https://download.docker.com/linux/centos/docker-ce.repo

2.3.安装docker-ce

yum install docker-ce

2.4.启动docker

systemctl start docker

2.5.运行hello-world镜像

docker run hello-world

成功如下图:

3.docker安装成功了,我选择的是官网拉取一个centos镜像

这里是官网的商店,可以找你想要的镜像。

其实要的就是这个命令:

docker pull centos

拉取到了centos的镜像,我们用镜像启动容器。

4.镜像创建与容器启动

4.1查看镜像

docker images

4.2用镜像启动容器

docker run -i -t -v /download/:/usr/my/docker/download/ 3fa822599e10 /bin/bash
其中,相关参数包括:  -i:表示以“交互模式”运行容器  -t:表示容器启动后会进入其命令行  -v:表示需要将本地哪个目录挂载到容器中,格式:-v 
<宿主机目录>
:
<容器目录>

说一下downlaod和/usr/my/docker/download/

前者表示你把东西放在你服务器的download/文件夹下,在进入容器的时候,文件会相应地映射到/usr/my/docker/download/这个文件夹下。

/bin/bash表示启动后进入命令行,crtl+d或者exit退出。

如果这一步出现:Permission denied,参考这篇大神的文章

查看容器:

docker ps -a

4.3重新进入容器

首先启动容器:

docker start c806a68d2409

进入容器:

docker attach c806a68d2409

5.java环境安装

5.1将jdk的tar包和tomcat的tar包放到/download/文件下

如图所示:

5.2 这时候进入容器指定目录,我的是/usr/mmy/就能找找到这两个jar包,解压和配置环境变量。

5.3解压jdk和tomcat的tar包

cd /usr/my  mkdir jdk  mkdir tomcatcd /usr/my/docker/download/  tar -zxvf jdk-8u144-linux-x64.tar.gz -C /usr/my/jdk tar -zxvf apache-tomcat-9.0.0.M26.tar.gz -C /usr/my/tomcatmv apache-tomcat-9.0.0.M26 tomcat_test

5.4配置环境变量

这里我没有配置jdk的环境变量,因为不需要,当然也可以配置。

vi /etc/profile

G-到最后一行,o-新换行开始。最后一行加上:

#set java environment   export JAVA_HOME=/usr/my/jdk/jdk1.8.0_144  export JRE_HOME=$JAVA_HOME/jre   export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH   export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$JAVA_HOME:$PATH

保存后 执行生效:

source /etc/profile

查看java版本:

5.5配置tomcat

进入tomcat的bin目录下

cd /usr/my/tomcat/tomcat_test/binvi setclasspath.sh vi setclasspath.sh 

最后添加:

export JAVA_HOME=/usr/my/jdk/jdk1.8.0_144 export JRE_HOME=$JAVA_HOME/jre

保存后,启动tomcat。

./startup.sh

6.配置容器启动环境变量

之所以前面说jdk的环境变量可以不配置,因为容器启动重新加载单独的配置文件。

6.1设置环境变量

vi ~/.bashrc

文件最后加上:

#set java environment   export JAVA_HOME=/usr/my/jdk/jdk1.8.0_144  export JRE_HOME=$JAVA_HOME/jre   export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH   export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$JAVA_HOME:$PATH

生效:

source ~/.bashrc

6.2编写运行脚本

vi /root/run.sh

脚本内容如下:

#!/bin/bash  source ~/.bashrc  sh /usr/my/tomcat/tomcat_test/bin/catalina.sh run

千万不要忘记给脚本加权限

chmod u+x /root/run.sh

这时候容器内部的准备工作就完了。退出容器。

7.创建web镜像

查找容器:

docker ps -a

创建镜像:

docker commit c806a68d2409 test_web:1.0

启动镜像:

docker run -d -p 8999:8080 --name  test test_web:1.0 /root/run.sh

-d:表示以“守护模式”执行/root/run.sh脚本,此时 Tomcat 控制台不会出现在输出终端上。  
-p:表示宿主机与容器的端口映射,此时将容器内部的 8080 端口映射为宿主机的 8999端口,这样就向外界暴露了 8999端口,可通过 Docker 网桥来访问容器内部的 8080 端口了。  
--name:表示容器名称,用一个有意义的名称命名即可。

查看镜像:

docker ps

如果能查到,说明启动成功了。

最后附上一张访问成功的图(8999端口):

部分内容来自:

8.问题:

另外说一下出现的问题:

8.1.如果出现类似bash:vi:或者cd或者ps等常用命令

command not find

检查一下/etc/profile下,是不是新配的环境变量有问题。

vi命令不好用的话:

在命令行中输入:export PATH=/usr/bin:/usr/sbin:/bin:/sbin:/usr/X11R6/bin  这样可以保证命令行命令暂时可以使用。

8.2.如果出现容器启动没反应,docker ps 找不到内容,但是启动没报错

估计是脚本启动失败,原因不太清楚。

可以试着把/etc/profile文件还原,再尝试下。

毕竟启动容器不需要改/etc/profile这个文件,有单独的文件~/.bashrc配置环境变量就可以了。

 

 

 

 

 

你可能感兴趣的文章
嵌入式 知识积累(三) 之 基本技能
查看>>
嵌入式 知识积累(四) 之 硬件开发的基本过程
查看>>
嵌入式 知识积累(五)之硬件工程师具备基本技能
查看>>
中小型园区网络的设计与实现 (一)
查看>>
别人的难题,就是你的价值。
查看>>
中小型园区网络的设计与实现 (二)
查看>>
中小型园区网络的设计与实现 (三)
查看>>
VLAN与子网划分区别
查看>>
Cisco Packet Tracer教程
查看>>
01. 开篇:组建小型局域网
查看>>
02. 交换机的基本配置和管理
查看>>
03. 交换机的Telnet远程登陆配置
查看>>
微信小程序-调用-腾讯视频-解决方案
查看>>
giuhub搭建及常用操作
查看>>
phpStudy安装yaf扩展
查看>>
密码 加密 加盐 常用操作记录
查看>>
TP 分页后,调用指定页。
查看>>
Oracle数据库中的(+)连接
查看>>
java-oracle中几十个实用的PL/SQL
查看>>
PLSQL常用方法汇总
查看>>