linux安装docker部署java项目

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

 

1.环境

 

linux centos 7.2

 

64-bit 系统

kernel 3.10+

 

 查看版本号 :

 

uname -r
 
 

 

 

 

大于3.10即可

 

2.安装docker

 

这里是官网安装教程

https://docs.docker.com/engine/installation/linux/docker-ce/centos/

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

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

2.1.移除之前定的安装:

 


 
 
  1. yum remove docker \
  2. docker-common \
  3. docker-selinux \
  4. docker-engine

2.2.设置仓库:

 

 


 
 
  1. yum-config-manager \
  2. --add-repo \
  3. 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镜像

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

https://store.docker.com/search?offering=community&type=edition

https://store.docker.com/images/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
 
 

 


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

 

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

 

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

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

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

http://blog.csdn.net/rznice/article/details/52170085

查看容器:

 

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包

 

 


 
 
  1. cd /usr/my
  2. mkdir jdk
  3. mkdir tomcat
  4. cd /usr/my/docker/download/
  5. tar -zxvf jdk-8u144-linux-x64.tar.gz -C /usr/my/jdk
  6. 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-新换行开始。最后一行加上:

 

 


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

保存后:

 

 

source /etc/profile   
 
 

查看java版本

 

 

java -version

 
 

 

5.5配置tomcat

进入tomcat的bin目录下

 


 
 
  1. cd /usr/my/tomcat/tomcat_test/bin
  2. vi setclasspath.sh 
vi setclasspath.sh 

最后添加:

 

 


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

保存后,启动tomcat。

 

 

./startup.sh
 
 


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

 

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

6.1设置环境变量

 

vi ~/.bashrc
 
 

文件最后加上:

 


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

生效:

 

 

source ~/.bashrc 
 
 

6.2编写运行脚本

 

 

vi /root/run.sh
 
 

脚本内容如下:

 

 


 
 
  1. #!/bin/bash
  2. source ~/.bashrc
  3. 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端口):


部分内容来自:

http://blog.csdn.net/evankaka/article/details/50722788

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配置环境变量就可以了。
 




 

 

 

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值