大家好,我是烤鸭:

分享一下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.移除之前定的安装:

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镜像

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

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
其中,相关参数包括:
-i:表示以“交互模式”运行容器
-t:表示容器启动后会进入其命令行
-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包

cd /usr/my
mkdir jdk
mkdir tomcat
cd /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/bin
vi 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端口):


部分内容来自:

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

linux安装docker部署java项目相关推荐

  1. Docker部署java项目(Dockerfile方式)

    Java 项目如何部署到Docker中? 如何将java项目部署到Docker中呢,这里以一个springboot为例 以下命令全部都是以linux为基础的 1. 首先找一个你熟悉的目录下创建一个目录 ...

  2. java docker 部署_使用docker部署java项目

    在接触了docker后,干什么都想用docker来弄.最近刚做完毕业设计,本来是说将项目简单在本地部署就行了,结果老师说如果部署在服务器的话有加加分,于是果断用docker来搞,多加点分. java项 ...

  3. jenkins+docker部署java项目

    jenkins + maven + jdk + docker + docker register + dockerfile jenkins插件 # 安装插件 SSH# 配置系统设置-> SSH ...

  4. docker compose java_Docker-compose部署java项目

    Docker-compose部署java项目 前置条件: 安装docker 安装docker-compose 防火墙啥的都设置好 dockerfile-demo FROM java:8 VOLUME ...

  5. Docker 部署 SpringBoot 项目整合 Redis 镜像做访问计数Demo

    Docker 部署SpringBoot项目整合 Redis 镜像做访问计数Demo 最终效果如下 大概就几个步骤 1.安装 Docker CE 2.运行 Redis 镜像 3.Java 环境准备 4. ...

  6. Docker 部署SpringBoot项目不香吗?

    点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试文章 作者:流星007 链接:toutiao.com/i68433912 ...

  7. Jenkins+Pipeline+Docker部署SpringBoot项目到远程服务器

    Jenkins部署 前言 Jenkins 安装 nginx配置 jenkins配置 Docker安装 项目部署 项目添加Dockerfile文件 Jenkins新建任务 使用Pipeline部署 结果 ...

  8. K8s 集群资源监控、高可用搭建、部署java项目 (下)

    目录 集群资源监控 监控指标和搭建方案 搭建监控平台(k8s部署) 部署守护进程 部署prometheus 部署Grafana 高可用k8s集群 系统初始化 master节点部署keepalived ...

  9. 使用Docker部署SpringBoot项目(避坑+超级详细版本)

    使用Docker部署SpringBoot项目(避坑+超级详细版本) 首先呢,非常感谢我们一起相遇在这个地方,想必此刻的你也是在一个学习求知的过程,我们一样,我们都是在求知的路上匍匐前进!看到这篇文章, ...

最新文章

  1. hadoop hdfs总结 NameNode部分 1
  2. 为什么修改了ie级别里的activex控件为启用后,还是无法下载,显示还是ie级别设置太高?
  3. QQ在线客服代码 网页qq咨询html代码
  4. Amesim车辆仿真—入门二之善用帮助文档
  5. 如何用保险保障自己的一生?
  6. 密码行业标准委员会公布的国家行业标准
  7. [转]在创业公司做架构师,你需要解决哪些问题?
  8. 香港流行乐黄金二十年——经典歌手(音乐人)全面回顾 三
  9. HDU 4565(矩阵快速幂)
  10. 高中数学竞赛和信息学竞赛_将数学竞赛变成编码竞赛
  11. WMS 系统出入库理解
  12. Redis 客户端三种不同的实现方式(Redisson、lettuce、jedis)
  13. PYQT5(17)-高级界面控件-表格与树
  14. form表单提交和ajax表单提交
  15. 如何组装一个注册中心?
  16. Qt之QWizard向导界面
  17. Java 集合系列3、骨骼惊奇之LinkedList
  18. 小蒋家庭影音平台 怎么用
  19. IE选项注册表控制大全
  20. leetcode 322. Coin Change-硬币交换|动态规划

热门文章

  1. 前端学习(3040):vue+element今日头条管理-上午回顾
  2. 前端学习(3002):vue+element今日头条管理--模块介绍
  3. 工作198:无法选中的状态一定要绑定在select上面
  4. 前端学习(2505):小游戏设计
  5. “约见”面试官系列之常见面试题之第一百零二篇之vue-router的两种模式(建议收藏)
  6. 前端学习(1955)vue之电商管理系统电商系统之完成添加分类功能
  7. 前端学习(650):标识符 关键字 保留字
  8. 前端学习(498):水平居中布局得第一种方式
  9. mybatis学习(43):一级缓存被刷新情况
  10. 第六十六期:运维专家写给运维工程师的6条人生忠告