ubuntu16.04环境下在docker上部署javaweb项目简单案例
因为一些原因,接触到了docker,经过一番研究,总算是有了一些自己的看法,有什么不对的地方,希望多多指教。
废话不多说,首先我这里使用的虚拟机安装的是ubuntu16.04版本,其他版本应该也可以。
当初在学习时查了很多资料,也看了很多同仁的博客,参考了https://blog.csdn.net/WANTED_Shanks/article/details/79815022 的内容,他做的是centos 7 版的,有很多共通之处;
一.Ubuntu 16.04 安装 Docker
1.选择国内的云服务商,这里选择阿里云为例
curl -sSL http://acs-public-mirror.oss-cn-hangzhou.aliyuncs.com/docker-engine/internet | sh -
2.安装所需要的包
sudo apt-get install linux-image-extra-$(uname -r) linux-image-extra-virtual
3.添加使用 HTTPS 传输的软件包以及 CA 证书
sudo apt-get update
sudo apt-get install apt-transport-https ca-certificates
4.添加GPG密钥
sudo apt-key adv --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys 58118E89F3A912897C070ADBF76221572C52609D
5.添加软件源
echo "deb https://apt.dockerproject.org/repo ubuntu-xenial main" | sudo tee /etc/apt/sources.list.d/docker.list
6.添加成功后更新软件包缓存
sudo apt-get update
7.安装docker
sudo apt-get install docker-engine
8.启动 docker
sudo systemctl enable docker
sudo systemctl start docker
2.我们选择第一个下载即可拉取镜像 docker pull tomcat
3.参照拉取tomcat镜像的方法拉取mysql镜像
挂载启动mysql镜像:docker run --name mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456-v /usr/mysql_data:/var/lib/mysql -d mysql
注: --name:给容器取一个别名为mysql
-p:映射端口号,将mysql的端口号3306映射为3306
-e: MYSQL_ROOT_PASSWORD:设置root密码为123456
-v:使用/usr/mysql_data挂载mysql数据文件,保存数据库数据
-d:后台运行容器,并返回容器ID
mysql:镜像名称 可使用docker images查看所有镜像:

使用docker ps 查看正在运行的容器:
5.现在可以通过windows上的数据库图形化管理工具,连接测试mysql
这里的ip地址为vm中ubuntu的ip地址,密码为启动mysql时,设置的密码。然后就可以在windows桌面进行mysql的数据库创建。
6.使用Dockerfile构建自己的docker镜像
修改web项目的数据库连接信息,将ip信息改为我们启动mysql容器时取的别名,改好,打成war包 这一点很关键容易搞错

对比之前我们在javaweb中连接数据库的写法 jdbc:mysql://localhost:3306/test

修改完成之后,将这个javaweb项目打成war包,在ubuntu系统中新建一个文件夹,将war包放入其中,

再在当前文件夹下创建一个Dockerfile 文档 在其中写入
from tomcat
COPY sushe.war /usr/local/tomcat/webapps
保存退出。
查看生成的镜像


8.启动sushe镜像:
docker run -d -p 8888:8080 --name fbm --link mysql:docker eaf2d687d1d3
注:--link:tomcat容器与msyql容器简历连接,mysql为启动mysql容器时取的别名,docker为建立连接的连接名
eaf2d687d1d3 为sushe镜像的image id
再放一遍图
mysql为启动mysql容器时取的别名
docker为建立连接的连接名
最后测试一下

测试数据库输入账号密码

登录成功,部署完毕
在部署过程中,肯定会有很多问题,有时候虽然在本机上运行的没问题,可是打包上传之后就出了错。
所以我们可以用 docker logs tomcat 查看日志信息。
ubuntu16.04环境下在docker上部署javaweb项目简单案例的更多相关文章
- Linux环境下在Tomcat上部署JavaWeb工程
本文讲解如何将我们已经编译好的JavaWeb工程在Linux环境下的Tomcat上进行部署,总体上的思路是和Windows下JavaWeb项目部署到tomcat差不多,具体步骤和命令如下. 注:部署之 ...
- Ubuntu16.04环境下搭建基于三台主机的mysql galera cluster集群(实测有效)
(注意: (1)文中红色字体部分不一定需要操作 (2)由于word文档编辑的原因,实际操作时部分命令需要手动输入!!直接复制粘贴会提示错误!! ) 一 搭建环境: 1 Ubuntu16.04版本(系 ...
- Ubuntu16.04环境下的硬盘挂载
需求:在Ubuntu16.04系统下,挂载一个新的硬盘 第一步:查看目前已经存在的分区的状态 命令:df -l 如上图所示,并未看到要挂载的硬盘(sda)的状态. 第二步:查看计算机硬盘的状态(包括格 ...
- faster-rcnn在ubuntu16.04环境下的超级详细的配置(转)
首先,下载好必须要的安装包.为了方便,我已经全部上传在了百度云. - ubuntu16.04系统 链接:http://pan.baidu.com/s/1geU8piz 密码:25mk - cuda8. ...
- mac和linux下使用Docker,部署SpringBoot项目到docker
主要是看一下如何在linux及mac上安装docker,创建docker镜像,部署SpringBoot项目到docker,并借助于DaoCloud进行docker镜像下载加速等. 我用的电脑是mac, ...
- 在腾讯云&阿里云上部署JavaWeb项目(Tomcat+MySQL)
之前做项目都是在本地跑,最近遇到需要在在云服务器(阿里云或者腾讯云都可以,差不多)上部署Java Web项目的问题,一路上遇到了好多坑,在成功部署上去之后写一下部署的步骤与过程,一是帮助自己总结记忆, ...
- Docker实战部署JavaWeb项目-基于SpringBoot
最近在滴滴云上看到服务器很便宜,1核2G,1年只需要68块钱.下面是我基于Docker部署Javaweb服务的过程.目前我见过的最便宜的服务器,阿里云打折的时候都没有这么便宜啊,果断入手.有需要的话可 ...
- docker实战部署Javaweb项目
一.部署环境说明 docker服务版本:version 18.09.0nginx服务版本:version: nginx/1.15.10redis服务版本:version: redis/5.0.3tom ...
- ubuntu14.04环境下利用docker搭建solrCloud集群
在Ubuntu14.04操作系统的宿主机中,安装docker17.06.3,将宿主机的操作系统制作成docker基础镜像,之后使用自制的基础镜像在docker中启动3个容器,分配固定IP,再在3个容器 ...
随机推荐
- Linux 服务器远程管理
一.Linux 常用远程管理工具 点击下载 二.查看服务器 ip 地址命令 1.通过 ip addr 查看网卡 ip 地址 ip addr 2.通过 ifconfig 查看网卡 ip 地址 最小化安装 ...
- OMPL 在windows下的安装
博客参考:https://blog.csdn.net/shitanding/article/details/82562702 和 https://bitbucket.org/ompl/omplapp/ ...
- osg::Node clone
深度拷贝 node.clone(osg::CopyOp::DEEP_COPY_ALL) osg::ref_ptr<osg::Node> deepnode = (osg::Node *)( ...
- 使用 evo 工具评测 VI ORB SLAM2 在 EuRoC 上的结果
http://www.liuxiao.org/2017/11/%E4%BD%BF%E7%94%A8-evo-%E5%B7%A5%E5%85%B7%E8%AF%84%E6%B5%8B-vi-orb-sl ...
- 零基础学Python-第二章 :Python基础语法-05.基础数据类型
打开终端,输入python3,这就进入了python的命令提示符. 输入type(8),返回的是int类型.用来type来判断当前的是什么类型. 字符串8转int类型. 数字123转字符串 布尔类型的 ...
- 【Redis】Redis 主从模式搭建
主从模式介绍 Redis虽然读取写入的速度都特别快,但是也会产生读压力特别大的情况.为了分担读压力,Redis支持主从复制,Redis的主从结构可以采用一主多从或者级联结构,Redis主从复制可以根据 ...
- 【DataBase】H2 DateBase的简单使用
H2介绍 H2是一个开源的嵌入式数据库引擎,采用java语言编写,不受平台的限制,同时H2提供了一个十分方便的web控制台用于操作和管理数据库内容. H2还提供兼容模式,可以兼容一些主流的数据库,因此 ...
- 基于Source Insight_Scan的C/C++静态代码检查工具安装说明
基于Source Insight_Scan的C/C++静态代码检查工具安装说明 本文链接:https://blog.csdn.net/M19930517/article/details/79977 ...
- Docker容器(四)——常用命令
(1).基本使用方法 查看所有镜像.docker images [root@youxi1 ~]# docker images REPOSITORY TAG IMAGE ID CREATED SIZE ...
- JS语言中的JSON.parse()和JSON.stringify()
parse()用于从一个字符串中解析出json对象,如 var str = '{"name":"huangxiaojian","age":& ...

