经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » 程序设计 » Docker » 查看文章
ubuntu16.04环境下在docker上部署javaweb项目简单案例
来源:cnblogs  作者:风华正茂xdx  时间:2019/6/28 8:36:40  对本文有异议

因为一些原因,接触到了docker,经过一番研究,总算是有了一些自己的看法,有什么不对的地方,希望多多指教。

废话不多说,首先我这里使用的虚拟机安装的是ubuntu16.04版本,其他版本应该也可以。

当初在学习时查了很多资料,也看了很多同仁的博客,参考了https://blog.csdn.net/WANTED_Shanks/article/details/79815022 的内容,他做的是centos 7 版的,有很多共通之处;

一.Ubuntu 16.04 安装 Docker

1.选择国内的云服务商,这里选择阿里云为例

  1. curl -sSL http://acs-public-mirror.oss-cn-hangzhou.aliyuncs.com/docker-engine/internet | sh -

2.安装所需要的包

  1. sudo apt-get install linux-image-extra-$(uname -r) linux-image-extra-virtual

3.添加使用 HTTPS 传输的软件包以及 CA 证书

  1. sudo apt-get update
  2. sudo apt-get install apt-transport-https ca-certificates

4.添加GPG密钥

  1. sudo apt-key adv --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys 58118E89F3A912897C070ADBF76221572C52609D

5.添加软件源

  1. echo "deb https://apt.dockerproject.org/repo ubuntu-xenial main" | sudo tee /etc/apt/sources.list.d/docker.list

6.添加成功后更新软件包缓存

  1. sudo apt-get update

7.安装docker

  1. sudo apt-get install docker-engine

8.启动 docker

  1. sudo systemctl enable docker
  2. sudo systemctl start docker




二.docker 部署一个简单的javaweb项目:
    部署一个javaweb项目,我们需要两个镜像,tomcat,mysql
  1.下载tomcat镜像
    首先查找tomcat镜像   docker search tomcat

  2.我们选择第一个下载即可拉取镜像  docker pull tomcat

  3.参照拉取tomcat镜像的方法拉取mysql镜像

  

  4.启动mysql镜像:
      因为docker容器,关闭,重启后,会清空容器里面的数据,所有我们用挂载的方式启动mysql,保存数据库数据
   现在ubuntu主机上创建一个文件夹 /usr/mysql_data  
  1.    挂载启动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

      保存退出。

      

    

  7.依然在当前目录下执行命令     使用docker build生成镜像:
          docker build -t sushe:latest .
      注:-t :设置repository,tag
     . :运行当前文件夹下的Dockerfile文件

     查看生成的镜像

 

  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  查看日志信息。

    

原文链接:http://www.cnblogs.com/xdx118/p/11098385.html

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号