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.移除之前定的安装:
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项目相关推荐
- Docker部署java项目(Dockerfile方式)
Java 项目如何部署到Docker中? 如何将java项目部署到Docker中呢,这里以一个springboot为例 以下命令全部都是以linux为基础的 1. 首先找一个你熟悉的目录下创建一个目录 ...
- java docker 部署_使用docker部署java项目
在接触了docker后,干什么都想用docker来弄.最近刚做完毕业设计,本来是说将项目简单在本地部署就行了,结果老师说如果部署在服务器的话有加加分,于是果断用docker来搞,多加点分. java项 ...
- jenkins+docker部署java项目
jenkins + maven + jdk + docker + docker register + dockerfile jenkins插件 # 安装插件 SSH# 配置系统设置-> SSH ...
- docker compose java_Docker-compose部署java项目
Docker-compose部署java项目 前置条件: 安装docker 安装docker-compose 防火墙啥的都设置好 dockerfile-demo FROM java:8 VOLUME ...
- Docker 部署 SpringBoot 项目整合 Redis 镜像做访问计数Demo
Docker 部署SpringBoot项目整合 Redis 镜像做访问计数Demo 最终效果如下 大概就几个步骤 1.安装 Docker CE 2.运行 Redis 镜像 3.Java 环境准备 4. ...
- Docker 部署SpringBoot项目不香吗?
点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试文章 作者:流星007 链接:toutiao.com/i68433912 ...
- Jenkins+Pipeline+Docker部署SpringBoot项目到远程服务器
Jenkins部署 前言 Jenkins 安装 nginx配置 jenkins配置 Docker安装 项目部署 项目添加Dockerfile文件 Jenkins新建任务 使用Pipeline部署 结果 ...
- K8s 集群资源监控、高可用搭建、部署java项目 (下)
目录 集群资源监控 监控指标和搭建方案 搭建监控平台(k8s部署) 部署守护进程 部署prometheus 部署Grafana 高可用k8s集群 系统初始化 master节点部署keepalived ...
- 使用Docker部署SpringBoot项目(避坑+超级详细版本)
使用Docker部署SpringBoot项目(避坑+超级详细版本) 首先呢,非常感谢我们一起相遇在这个地方,想必此刻的你也是在一个学习求知的过程,我们一样,我们都是在求知的路上匍匐前进!看到这篇文章, ...
最新文章
- hadoop hdfs总结 NameNode部分 1
- 为什么修改了ie级别里的activex控件为启用后,还是无法下载,显示还是ie级别设置太高?
- QQ在线客服代码 网页qq咨询html代码
- Amesim车辆仿真—入门二之善用帮助文档
- 如何用保险保障自己的一生?
- 密码行业标准委员会公布的国家行业标准
- [转]在创业公司做架构师,你需要解决哪些问题?
- 香港流行乐黄金二十年——经典歌手(音乐人)全面回顾 三
- HDU 4565(矩阵快速幂)
- 高中数学竞赛和信息学竞赛_将数学竞赛变成编码竞赛
- WMS 系统出入库理解
- Redis 客户端三种不同的实现方式(Redisson、lettuce、jedis)
- PYQT5(17)-高级界面控件-表格与树
- form表单提交和ajax表单提交
- 如何组装一个注册中心?
- Qt之QWizard向导界面
- Java 集合系列3、骨骼惊奇之LinkedList
- 小蒋家庭影音平台 怎么用
- IE选项注册表控制大全
- leetcode 322. Coin Change-硬币交换|动态规划
热门文章
- 前端学习(3040):vue+element今日头条管理-上午回顾
- 前端学习(3002):vue+element今日头条管理--模块介绍
- 工作198:无法选中的状态一定要绑定在select上面
- 前端学习(2505):小游戏设计
- “约见”面试官系列之常见面试题之第一百零二篇之vue-router的两种模式(建议收藏)
- 前端学习(1955)vue之电商管理系统电商系统之完成添加分类功能
- 前端学习(650):标识符 关键字 保留字
- 前端学习(498):水平居中布局得第一种方式
- mybatis学习(43):一级缓存被刷新情况
- 第六十六期:运维专家写给运维工程师的6条人生忠告