docker部署web项目_Docker上部署javaWeb项目

Tomcat是由Apache软件基金会下属的Jakarta项目开发的一个Servlet容器,按照Sun Microsystems提供的技术规范,实现了对Servlet和JavaServer Page (JSP)的支持。同时,它提供了作为Web服务器的一些特有功能,如Tomcat管理和控制平台、安全域管理和Tomcat阀等。由于Tomcat本身也内含了一个HTTP服务器,也可以当作单独的Web服务器来使用。

第一种方式

1、准备工作

创建tomcat7.0_jdk1.6文件夹,并进入该文件夹

mkdir tomcat7.0_jdk1.6cd tomcat7.0_jdk1.6/

2、搜索Tomcat镜像

docker search tomcat
dc2bf8d6a520c8024df5492e67a91534.png

3、拉取官方的镜像

docker pull tomcat

等待下载完成后,我们就可以在本地镜像列表里查到REPOSITORY为tomcat的镜像。

4、查看tomcat镜像

[root@localhost tomcat7.0_jdk1.6]# docker images|grep tomcat

5、运行容器

[root@localhost tomcat7.0_jdk1.6]# docker run --name tomcat -p 8080:8080 -v $PWD/test:/usr/local/tomcat/webapps/test -d tomcat acb33fcb4beb8d7f1ebace6f50f5fc204b1dbe9d524881267aa715c61cf75320

命令说明:

-p 8080:8080:将容器的8080端口映射到主机的8080端口-v $PWD/test:/usr/local/tomcat/webapps/test:将主机中当前目录下的test挂载到容器的/test

6、查看容器启动情况

[root@localhost tomcat7.0_jdk1.6]# docker ps
cb2d83f79113be04a081b8ab219b4b3f.png

7、浏览

c1feb66742f86cc5553307652072eb12.png

方法二、通过 Dockerfile 构建

1、创建Dockerfile

首先,创建目录tomcat,用于存放后面的相关东西。

runoob@runoob:~$ mkdir -p ~/tomcat/webapps ~/tomcat/logs ~/tomcat/conf

webapps目录将映射为tomcat容器配置的应用程序目录

logs目录将映射为tomcat容器的日志目录

conf目录里的配置文件将映射为tomcat容器的配置文件

进入创建的tomcat目录,创建Dockerfile

FROM openjdk:8-jre ENV CATALINA_HOME /usr/local/tomcatENV PATH $CATALINA_HOME/bin:$PATHRUN mkdir -p "$CATALINA_HOME"WORKDIR $CATALINA_HOME# let "Tomcat Native" live somewhere isolatedENV TOMCAT_NATIVE_LIBDIR $CATALINA_HOME/native-jni-libENV LD_LIBRARY_PATH ${LD_LIBRARY_PATH:+$LD_LIBRARY_PATH:}$TOMCAT_NATIVE_LIBDIR# runtime dependencies for Tomcat Native Libraries# Tomcat Native 1.2+ requires a newer version of OpenSSL than debian:jessie has available# > checking OpenSSL library version >= 1.0.2...# > configure: error: Your version of OpenSSL is not compatible with this version of tcnative# see http://tomcat.10.x6.nabble.com/VOTE-Release-Apache-Tomcat-8-0-32-tp5046007p5046024.html (and following discussion)# and https://github.com/docker-library/tomcat/pull/31ENV OPENSSL_VERSION 1.1.0f-3+deb9u2RUN set -ex;  currentVersion="$(dpkg-query --show --showformat '${Version}' openssl)";  if dpkg --compare-versions "$currentVersion" '< /etc/apt/sources.list.d/stretch.list;  { # add a negative "Pin-Priority" so that we never ever get packages from stretch unless we explicitly request them echo 'Package: *';  echo 'Pin: release n=stretch*';  echo 'Pin-Priority: -10';  echo; # ... except OpenSSL, which is the reason we're here echo 'Package: openssl libssl*';  echo "Pin: version $OPENSSL_VERSION";  echo 'Pin-Priority: 990';  } > /etc/apt/preferences.d/stretch-openssl;  fi;  apt-get update;  apt-get install -y --no-install-recommends openssl="$OPENSSL_VERSION";  rm -rf /var/lib/apt/lists/*;  fi RUN apt-get update && apt-get install -y --no-install-recommends  libapr1  && rm -rf /var/lib/apt/lists/* # see https://www.apache.org/dist/tomcat/tomcat-$TOMCAT_MAJOR/KEYS# see also "update.sh" (https://github.com/docker-library/tomcat/blob/master/update.sh)ENV GPG_KEYS 05AB33110949707C93A279E3D3EFE6B686867BA6 07E48665A34DCAFAE522E5E6266191C37C037D42 47309207D818FFD8DCD3F83F1931D684307A10A5 541FBE7D8F78B25E055DDEE13C370389288584E7 61B832AC2F1C5A90F0F9B00A1C506407564C17A3 713DA88BE50911535FE716F5208B0AB1D63011C7 79F7026C690BAA50B92CD8B66A3AD3F4F22C4FED 9BA44C2621385CB966EBA586F72C284D731FABEE A27677289986DB50844682F8ACB77FC2E86E29AC A9C5DF4D22E99998D9875A5110C01C5A2F6059E7 DCFD35E0BF8CA7344752DE8B6FB21E8933C60243 F3A04C595DB5B6A5F1ECA43E3B7BBB100D811BBE F7DA48BB64BCB84ECBA7EE6935CD23C10D498E23 ENV TOMCAT_MAJOR 8ENV TOMCAT_VERSION 8.5.32ENV TOMCAT_SHA512 fc010f4643cb9996cad3812594190564d0a30be717f659110211414faf8063c61fad1f18134154084ad3ddfbbbdb352fa6686a28fbb6402d3207d4e0a88fa9ce ENV TOMCAT_TGZ_URLS # https://issues.apache.org/jira/browse/INFRA-8753?focusedCommentId=14735394#comment-14735394 https://www.apache.org/dyn/closer.cgi?action=download&filename=tomcat/tomcat-$TOMCAT_MAJOR/v$TOMCAT_VERSION/bin/apache-tomcat-$TOMCAT_VERSION.tar.gz # if the version is outdated, we might have to pull from the dist/archive :/ https://www-us.apache.org/dist/tomcat/tomcat-$TOMCAT_MAJOR/v$TOMCAT_VERSION/bin/apache-tomcat-$TOMCAT_VERSION.tar.gz  https://www.apache.org/dist/tomcat/tomcat-$TOMCAT_MAJOR/v$TOMCAT_VERSION/bin/apache-tomcat-$TOMCAT_VERSION.tar.gz  https://archive.apache.org/dist/tomcat/tomcat-$TOMCAT_MAJOR/v$TOMCAT_VERSION/bin/apache-tomcat-$TOMCAT_VERSION.tar.gz ENV TOMCAT_ASC_URLS  https://www.apache.org/dyn/closer.cgi?action=download&filename=tomcat/tomcat-$TOMCAT_MAJOR/v$TOMCAT_VERSION/bin/apache-tomcat-$TOMCAT_VERSION.tar.gz.asc # not all the mirrors actually carry the .asc files :'( https://www-us.apache.org/dist/tomcat/tomcat-$TOMCAT_MAJOR/v$TOMCAT_VERSION/bin/apache-tomcat-$TOMCAT_VERSION.tar.gz.asc  https://www.apache.org/dist/tomcat/tomcat-$TOMCAT_MAJOR/v$TOMCAT_VERSION/bin/apache-tomcat-$TOMCAT_VERSION.tar.gz.asc  https://archive.apache.org/dist/tomcat/tomcat-$TOMCAT_MAJOR/v$TOMCAT_VERSION/bin/apache-tomcat-$TOMCAT_VERSION.tar.gz.asc RUN set -eux;   savedAptMark="$(apt-mark showmanual)";  apt-get update;   apt-get install -y --no-install-recommends gnupg dirmngr;   export GNUPGHOME="$(mktemp -d)";  for key in $GPG_KEYS; do  gpg --keyserver ha.pool.sks-keyservers.net --recv-keys "$key";  done;   apt-get install -y --no-install-recommends wget ca-certificates;   success=;  for url in $TOMCAT_TGZ_URLS; do  if wget -O tomcat.tar.gz "$url"; then  success=1;  break;  fi;  done;  [ -n "$success" ];   echo "$TOMCAT_SHA512 *tomcat.tar.gz" | sha512sum -c -;   success=;  for url in $TOMCAT_ASC_URLS; do  if wget -O tomcat.tar.gz.asc "$url"; then  success=1;  break;  fi;  done;  [ -n "$success" ];   gpg --batch --verify tomcat.tar.gz.asc tomcat.tar.gz;  tar -xvf tomcat.tar.gz --strip-components=1;  rm bin/*.bat;  rm tomcat.tar.gz*;  rm -rf "$GNUPGHOME";   nativeBuildDir="$(mktemp -d)";  tar -xvf bin/tomcat-native.tar.gz -C "$nativeBuildDir" --strip-components=1;  apt-get install -y --no-install-recommends  dpkg-dev  gcc  libapr1-dev  libssl-dev  make  "openjdk-${JAVA_VERSION%%[.~bu-]*}-jdk=$JAVA_DEBIAN_VERSION"  ;  (  export CATALINA_HOME="$PWD";  cd "$nativeBuildDir/native";  gnuArch="$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)";  ./configure  --build="$gnuArch"  --libdir="$TOMCAT_NATIVE_LIBDIR"  --prefix="$CATALINA_HOME"  --with-apr="$(which apr-1-config)"  --with-java-home="$(docker-java-home)"  --with-ssl=yes;  make -j "$(nproc)";  make install;  );  rm -rf "$nativeBuildDir";  rm bin/tomcat-native.tar.gz;  # reset apt-mark's "manual" list so that "purge --auto-remove" will remove all build dependencies apt-mark auto '.*' > /dev/null;  [ -z "$savedAptMark" ] || apt-mark manual $savedAptMark;  apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false;  rm -rf /var/lib/apt/lists/*;  # sh removes env vars it doesn't support (ones with periods)# https://github.com/docker-library/tomcat/issues/77 find ./bin/ -name '*.sh' -exec sed -ri 's|^#!/bin/sh$|#!/usr/bin/env bash|' '{}' + # verify Tomcat Native is working properlyRUN set -e  && nativeLines="$(catalina.sh configtest 2>&1)"  && nativeLines="$(echo "$nativeLines" | grep 'Apache Tomcat Native')"  && nativeLines="$(echo "$nativeLines" | sort -u)"  && if ! echo "$nativeLines" | grep 'INFO: Loaded APR based Apache Tomcat Native library' >&2; then  echo >&2 "$nativeLines";  exit 1;  fi EXPOSE 8080CMD ["catalina.sh
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 阿里云ECS(Elastic Compute Service)服务器部署Java Web项目的整个流程如下: 1. 购买阿里云ECS服务器:首先,需要在阿里云官网购买一个ECS服务器。选择适合的配置和操作系统(如CentOS、Ubuntu等),并确保服务器已经成功启动。 2. 连接到ECS服务器:使用SSH(Secure Shell)工具,如Putty等,通过服务器的公网IP地址和默认的22端口,连接到ECS服务器。 3. 安装Java开发环境:在ECS服务器上安装Java开发环境,包括JDK(Java Development Kit)和JRE(Java Runtime Environment)。可以通过命令行方式或者下载安装包方式进行安装。 4. 配置服务器环境:根据需要,可以安装并配置容器化技术如Docker,以及服务器软件如Tomcat、Nginx等,用于部署和运行Java Web项目。 5. 上传项目文件:将Java Web项目的相关文件(如WAR包或者源代码)上传到ECS服务器。可以使用FTP(File Transfer Protocol)工具,如FileZilla等,将文件上传到服务器的指定目录。 6. 构建和部署项目:在ECS服务器上使用命令行工具,进入项目文件所在的目录,使用Maven或者Gradle等构建工具,运行构建命令,编译、打包Java Web项目。 7. 配置项目运行环境:根据项目要求,可能需要修改配置文件,如数据库连接信息、缓存配置等。可以使用文本编辑器或者命令行工具进行修改。 8. 启动项目:使用命令行工具,运行Java Web项目的启动命令,如启动Tomcat容器。可以查看启动日志,确认项目是否成功启动。 9. 监控和管理项目:使用阿里云的应用监控工具或者第三方工具,对Java Web项目进行监控和管理,如查看应用的性能指标、错误日志和访问日志等。 10. 绑定域名和配置SSL证书(可选):如果需要通过域名访问Java Web项目,可以在阿里云的域名服务中,将域名解析到ECS服务器的公网IP地址,并配置SSL证书,实现HTTPS访问。 总结起来,阿里云ECS服务器部署Java Web项目的流程包括购买服务器、连接服务器、安装Java开发环境、配置服务器环境、上传项目文件、构建和部署项目、配置项目运行环境、启动项目、监控和管理项目,以及绑定域名和配置SSL证书(可选)。 ### 回答2: 阿里云ECS服务器部署JavaWeb项目的整个流程如下: 1. 登录阿里云官网,购买一台ECS服务器,选择合适的配置和系统镜像。 2. 在云服务器ECS的控制台上,找到已购买的服务器实例,并记录下服务器实例的公网IP地址。 3. 在本地开发环境,将JavaWeb项目打包成war文件。 4. 使用FTP工具(如FileZilla)将war文件上传到ECS服务器。连接ECS服务器的方法为使用用户名和密码连接到服务器实例的公网IP。 5. 在ECS服务器上安装Java运行环境,执行以下命令: ``` yum update -y # 更新系统 yum install java-1.8.0-openjdk-devel -y # 安装Java环境 ``` 6. 配置ECS服务器的防火墙规则,允许对应的端口访问。通常JavaWeb项目使用的是8080端口,可以在ECS的安全组中开放对应的端口。 7. 在ECS服务器上启动Tomcat服务器,执行以下命令: ``` cd /usr/local # 进入Tomcat安装目录 wget http://mirrors.tuna.tsinghua.edu.cn/apache/tomcat/tomcat-9/v9.0.52/bin/apache-tomcat-9.0.52.tar.gz # 下载Tomcat tar -zxvf apache-tomcat-9.0.52.tar.gz # 解压Tomcat cd apache-tomcat-9.0.52/bin # 进入Tomcat的bin目录 ./startup.sh # 启动Tomcat ``` 8. 在浏览器中输入ECS服务器的公网IP地址和Tomcat使用的端口号,例如:http://公网IP:8080/,即可访问部署好的JavaWeb项目。 以上就是阿里云ECS服务器部署JavaWeb项目的整个流程。当然,根据具体的项目和需求,可能会涉及到其他配置和操作,例如数据库的连接、SSL证书的安装等。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值