zoukankan      html  css  js  c++  java
  • 在linux系统上用docker部署JavaWeb项目


    1.安装docker环境
    也可以使用国内 daocloud 一键安装命令:

    curl -sSL https://get.daocloud.io/docker | sh

    2.可使用以下命令,查看 Docker 是否安装成功:

    docker version

    运行第一个hello-world镜像程序

    sudo docker run hello-world

    3.启动docker

    service docker start

    重启:

    service docker restart  

    关闭docker服务:

    service docker stop

    查看docker是否启动:

    systemctl status docker 

    4.安装tomcat镜像

    #搜索tomcat镜像
    docker search tomcat 
    #安装tomcat镜像
    docker pull tomcat 
    #查看已安装的tomcat镜像
    docker images 

    5.通过下载tomcat镜像启动一个tomcat容器

    -d表示后台运行,-p端口映射,前面的8088是外围访问端口(也就是本机ip对外开放的端口),后面8080是docker容器内部的端口

    tomcat:last last是指定的tomcat的标签,相同的镜像可以指定不同的标签以做区分。

    docker run -d -p 8080:8080 tomcat:latest

    6.查看运行的docker容器

    docker ps

    进入docker里面的tomcat容器,需要容器ID,所以上面要查看正在运行的容器tomcat

    docker exec -it 9fccf0236619 /bin/bash
    #查看tomcat镜像内部文件,并进入webapps文件夹
    ls
    cd webapps

    退出容器:

    exit

    启动容器:

    docker start containerID

    停止容器:

    docker stop containerID

    7.验证tomcat容器

    通过在浏览器中访问tomcat来查看启动的tomcat镜像是否可以正常运行,访问方式同一般机器下部署tomcat,即:http://ip:8080,根据自己ip地址情况。如我的测试地址是:http://192.168.93.128:8080

    8.将war包放入到docker下的tomcat中

    将war包通过Ftp放入linux系统中的usr目录下,并将war包拷贝到docker中,containerID 是你所启动tomcat镜像的容器ID或者容器名称也可以,用docker ps命令查看。 这是将test.war放到tomcat的webapps下

    docker cp /usr/test.war containerID:/usr/local/tomcat/webapps/

    9.由于war包在tomcat下是自动解压的,所以我们稍等项目完全成功启动,我们就可以直接访问项目了。

     本地打开浏览器直接访问,不成功就等项目成功启动后,或者多试几次就ok。

    10.使用linux目录长期与docker容器目录挂载

    #(什么是宿主机:自己当前的服务器centOS7称之为宿主机,宿主机上的docker可看作一个容器,也就是docker所在的服务器称为宿主机)

     为挂载目录之前做准备:

          在usr/local/目录下创建一个dev目录,dev目录用来专门存放开发包什么的,dev目录下再创建一个docker-tomcat目录,行了,就用docker-tomcat进行映射到docker中的tomcat容器里的webapps目录,创建目录如下图:

     目录创建好了,下面进行挂载目录,运行tomcat容器

    #挂载usr/local/dev/docker-tomcat目录,并运行容器命令如下
    
    docker run -d -p 8088:8080 --name tomcat -v /usr/local/dev/docker-tomcat:/usr/local/tomcat/webapps --restart=always tomcat

    此错表示已经有一个tomcat别名的容器了,所以我们要使用命令查看一下所有容器

    #docker查看所有容器
    docker ps -a
    #删除容器
    docker rm 5137519634f0

     删除之后,再运行命令:

    docker run -d -p 8088:8080 --name tomcat -v /usr/local/dev/docker-tomcat:/usr/local/tomcat/webapps --restart=always tomcat

    我已经在docker-tomcat目录下放了一个test01.war包和一个01.txt文件,所以当我执行挂载启动的时候,进入tomcat容器下的webapps目录,里面已经把docker-tomcat目录下的内容挂载过来了,tomcat并自动把test01.war解压了。如下图:以后只管增删宿主机上docker-tomcat目录下的内容就行啦。

    11.现在项目都是前后端分离,后端基本使用springboot项目打成jar包,所以tomcat已经不方便了,docker使用tomcat还要挂载webapps目录。其实不管是jar包还是war包,可以使用docker的Dockerfile,自定义镜像的形式来启动项目。

  • 相关阅读:
    centos7 启动mongodb时报错ERROR: child process failed, exited with error number 1
    liunxcentos7下 跟目录空间不足docker load镜像报错空间不足
    centos7下初始化硬盘挂载目录
    Jenkins打包出错
    CentOS 7 安装 Percona XtraDB Cluster 5.7
    Etcd集群搭建(证书通信)
    centos7下prometheus+grafana监控
    nginx代理
    装Centos7系统
    Dockerfile常用指令使用案例
  • 原文地址:https://www.cnblogs.com/wanlige/p/14779835.html
Copyright © 2011-2022 走看看