在阿里云ECS上安装Docker、Tomcat并部署官网(无后端交互)

简介: 在阿里云ECS上安装Docker、Tomcat并部署官网(无后端交互)

在阿里云上的ECS服务器配置
ECS 1核1G,1M带宽
Ubantu 16
Docker
Tomcat 9
有公网IP,配置安全策略,没有购买RDS,购买完成后,即设置了账号、密码,远程连接工具用的是putty,文件传输工具用的是FileZilla,官网用的是Bootstrap,VS code,并安装了browser插件
以下是具体操作步骤,及遇到的问题和解决方式:(Ubantu和Centos大家注意区分,别搞混了)
1.首先打开终端窗口输入命令,更新包信息:
sudo apt-get update
2.安装CA证书,支持Https:
sudo apt-get install

sudo apt-get install apt-transport-httpssudo apt-get install ca-certificates

sudo apt-get install curl

sudo apt-get install software-properties-common
3.添加一个官方的GPG密钥:
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
4.验证密钥指纹:
sudo apt-key fingerprint 0EBFCD88
输出的是:9DC8 5822 9FC7 DD38 854A E2D8 8D81 803C 0EBF CD88  即正确。
5.下载amd64的官方最新稳定版Docker:
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu  $(lsb_release -cs)  stable"
出现如下提示,则正确:
image

6再次更新包信息:
sudo apt-get update
7.安装Docker CE版本:因为已修改镜像地址为阿里云,所以可以直接使用下述方式,如果未修改,命令为 sudo apt-get install docker-ce
sudo apt-get install docker
8.创建一个docker组,防止每次都要用sudo命令执行docker命令:
sudo groupadd docker
9.将该用户加入到组内:${USER} 不用修改,是直接取值的写法
sudo gpasswd -a ${USER} docker
10.重启docker:
sudo service docker restart
执行到此步时,出现以下报错:
image

执行以下语句:
apt install docker.io
会显示安装过程,并可明显看到成功与否,基本都是成功的,然后重新执行   sudo service docker restart 
11.切换当前会话到新的组:
newgrp - docker

  1. 安装Tomcat容器
    2.1 查找 tomcat 信息

docker search tomcat
2.2 下载下来官方的镜像Starts最高的那个
docker pull  docker.io/tomcat
2.3 查看docker所有的镜像
docker images
2.4启动tomcat
docker run -p 8080:8080 docker.io/tomcat
此处的两个8080分别说明下: 
-p 后面的是服务器端口,docker前面的是容器内端口,此处的写法是进行对应,也可不一样
成功启动后,发现无法正常访问,此时进行如下操作:
查看当前的镜像:  docker images
image

猜测因为启动了网络,那么是否有可能是防火墙的原因,输入 sudo ufw allow 8080,加入例外
再次打开浏览器访问发现仍不能正常访问
网上找了一下,说是有可能是安装docker的时候,源文件有问题,因为之前配置过docker镜像从阿里云镜像获取,故重新替换当前文件
1 更改apt源,更改前先对sources.list文件进行备分
命令行:sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak
修改sources.list文件
deb http://mirrors.aliyun.com/ubuntu/ trusty main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ trusty-security main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ trusty-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ trusty-proposed main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ trusty-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ trusty main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ trusty-security main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ trusty-updates main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ trusty-proposed main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ trusty-backports main restricted universe multiverse
先把sources.list清空,然后把上述的10条复制进去,退出编辑后,保存、退出
点击ESC,然后快捷键:SHIFT+冒号,退出编辑,输入wq,保存、退出
2、更新apt源
命令行:sudo apt-get update
3、安装Docker
命令行:sudo apt-get install docker.io
安装完成后,需要重启下系统。
sudo reboot
4、启动docker
sudo service docker restart,如果未开启的情况下,restart 改为  start
5、启动Tomcat
docker run -p 8080:8080 docker.io/tomcat
启动后,使用ECS外围IP,:8080,可以正常访问
接下来,还需要做的是,把使用Bootstrap做的官网静态页面,放到Tomcat中,因为没后端代码,所以不叫做发布
此处比较搞笑的一点是:想尝试着做个镜像,结果把Windows下Tomcat通过FileZilla传输到 Ubantu下,然后发现始终启动不起了,马失前蹄啊,其实问题的关键是局部替换,即把原始版本中Tomcat/webapps下的几个文件夹全部删除,改用我要替换的内容,此处还有一点要谨记的是,如果只是把如下的文件放置到webapps下,是不能直接访问到的
image

其实大家可以类比下自己的项目,Tomcat本身的加载机制已经很完善和严谨,所以我没必要怨怼,按规则做就好
我用website包了一层,放到webapps下
然后通过 FileZilla 直接传输到Ubantu的Tomcat/webapps下,重新查看当前的容器是否有在启动
命令行:docker ps -a,
如果只是 docker ps,只会显示当前运行中的容器, 加上  -a 把全部容器的状态显示出来,我们只需查看非exited 的就好,如果觉得不想看那么多,可以做下清理:
命令行:

删除所有未运行的容器(已经运行的删除不了,未运行的就一起被删除了)

sudo docker rm $(sudo docker ps -a -q)
做镜像的话,阿里云上的容器镜像服务,有比较专业的说明,还算比较容易操作
完成以上操作,我们打开浏览器访问:
image

然后很高兴的关闭了putty ,结果几分钟后刷新,发现又访问不了了,查看当前运行中的容器,发现是空的,之前启动的也已退出
分析了原因,原来是容器重启后,Tomcat服务就不在了,这样的话,不利于我们做官网部署,所以采用挂载的方式启动
在 opt下新建单独的目录,用以单独存放官网的静态页面,即上述所说的website,并放在 xxxx.net.cn,与tomcat/webapps对应起来,命令行如下:
docker run -d -v /opt/software/xxxx.net.cn:/usr/local/tomcat/webapps -p 8080:8080 docker.io/tomcat  
-d   采用后台方式,挂载启动,因为我安装Tomcat时,用的就是 docker.io/docker 方式
执行以上操作后,则可放心了,再者Ubantu本身也比较稳定,可以几个月不用重启服务了
在单独做Tomcat镜像的时候,用到的两段命令行分享一下:
dockerFile
FROM ubuntu:16.04 
MAINTAINER cc-man

上传

ADD tomcat-website /opt/tomcat
COPY /run.sh /root/run.sh
RUN  chmod 777 /root/run.sh
ENTRYPOINT ["/root/run.sh"]
run.sh

!/bin/bash

sh /opt/tomcat/tomcat-website/bin/catalina.sh run
此处的tomcat-website是经过加工的Tomcat,即从镜像仓库中pull后,在把需要用的东西放到webapps下,然后再生成新的镜像
以上是此次处理时的分享,希望对大家有所帮助
另外访问时,还剩余几个问题:
1、http访问,需要加SSL证书,换成https安全访问
2、IP跟域名要进行映射
3、在网站发布后,同步要进行备案操作,备案后要把备案信息按要求放置在页面底部
以上三个问题,会单独写文章分享,阿里云的备案还是可以的,之前用过几次,这次用的也是阿里云的
购买域名、网站备案、商标注册都不错,以下是我的域名米店,欢迎光临选购:
https://mi.aliyun.com/shop/38495
目前已上架200多个域名

相关实践学习
通义万相文本绘图与人像美化
本解决方案展示了如何利用自研的通义万相AIGC技术在Web服务中实现先进的图像生成。
7天玩转云服务器
云服务器ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,可降低 IT 成本,提升运维效率。本课程手把手带你了解ECS、掌握基本操作、动手实操快照管理、镜像管理等。了解产品详情: https://www.aliyun.com/product/ecs
相关文章
|
22天前
|
关系型数据库 数据库 PostgreSQL
docker 安装 Postgres 17.6
本文介绍如何通过Docker安装和配置PostgreSQL 17.6。内容包括拉取镜像、导出配置文件、运行容器并挂载数据与配置文件目录,以及进入容器使用psql操作数据库的完整步骤,便于持久化管理和自定义配置。
137 3
docker 安装 Postgres 17.6
|
4天前
|
NoSQL 算法 Redis
【Docker】(3)学习Docker中 镜像与容器数据卷、映射关系!手把手带你安装 MySql主从同步 和 Redis三主三从集群!并且进行主从切换与扩容操作,还有分析 哈希分区 等知识点!
Union文件系统(UnionFS)是一种**分层、轻量级并且高性能的文件系统**,它支持对文件系统的修改作为一次提交来一层层的叠加,同时可以将不同目录挂载到同一个虚拟文件系统下(unite several directories into a single virtual filesystem) Union 文件系统是 Docker 镜像的基础。 镜像可以通过分层来进行继承,基于基础镜像(没有父镜像),可以制作各种具体的应用镜像。
78 5
|
4天前
|
Java Linux 虚拟化
【Docker】(1)Docker的概述与架构,手把手带你安装Docker,云原生路上不可缺少的一门技术!
1. Docker简介 1.1 Docker是什么 为什么docker会出现? 假定您在开发一款平台项目,您的开发环境具有特定的配置。其他开发人员身处的环境配置也各有不同。 您正在开发的应用依赖于您当前的配置且还要依赖于某些配置文件。 您的企业还拥有标准化的测试和生产环境,且具有自身的配置和一系列支持文件。 **要求:**希望尽可能多在本地模拟这些环境而不产生重新创建服务器环境的开销 问题: 要如何确保应用能够在这些环境中运行和通过质量检测? 在部署过程中不出现令人头疼的版本、配置问题 无需重新编写代码和进行故障修复
69 1
|
1月前
|
存储 缓存 数据挖掘
阿里云目前最便宜云服务器介绍:38元、99元、199元性能,选购攻略参考
轻量应用服务器2核2G峰值200M带宽38元1年;云服务器经济型e实例2核2G3M带宽99元1年;云服务器通用算力型u1实例2核4G5M带宽199元1年。对于还未使用过阿里云服务器的用户来说,大家也不免有些疑虑,这些云服务器性能究竟如何?它们适用于哪些场景?能否满足自己的使用需求呢?接下来,本文将为您全方位介绍这几款云服务器,以供您了解及选择参考。
|
2月前
|
网络安全 云计算
如何设置阿里云轻量应用服务器镜像?
本文介绍了在阿里云轻量应用服务器上创建与配置镜像的详细步骤。镜像是一种特殊的文件系统映射,可用于快速克隆服务器配置。内容涵盖准备条件、登录控制台、创建实例、生成镜像、下载与设置镜像,以及如何使用镜像启动新实例。适合希望提升服务器部署效率的用户参考。
|
27天前
|
弹性计算 Devops Shell
用阿里云 DevOps Flow 实现 ECS 部署自动化:从准备到落地的完整指南
阿里云 DevOps Flow 是一款助力开发者实现自动化部署的高效工具,支持代码流水线构建、测试与部署至ECS实例,显著提升交付效率与稳定性。本文详解如何通过 Flow 自动部署 Bash 脚本至 ECS,涵盖环境准备、流水线搭建、源码接入、部署流程设计及结果验证,助你快速上手云上自动化运维。
113 0
|
15天前
|
开发框架 JavaScript .NET
阿里云轻量应用服务器2核2G38元1年起怎么样?性能、应用场景与购买价值参考
目前在阿里云的活动中,抢购价为38元1年的轻量应用服务器受到了众多个人和中小企业用户的高度关注,该款轻量应用服务器置为2核CPU、2G内存,峰值带宽达200M。那么,此款轻量应用服务器的具体性能如何?适用于哪些应用场景?是否具备较高的购买价值?本文将针对这款特惠轻量应用服务器展开全面且深入的测评与介绍。
274 30
阿里云轻量应用服务器2核2G38元1年起怎么样?性能、应用场景与购买价值参考
|
6天前
|
自然语言处理 监控 数据可视化
如何建设网站:使用阿里云的服务器网站建设5大步骤
企业用阿里云服务器建网站,无需复杂技术,按五步骤即可。先规划需求明确网站功能;再选入门级服务器并初始化;接着部署 PageAdmin CMS,可视化操作易上手;然后选模板填内容搭建网站;最后测试适配与稳定性,绑定域名备案后上线。PageAdmin 还方便后期维护调整。
109 10
|
8天前
|
弹性计算 Windows
阿里云香港服务器收费价格:香港ECS和轻量应用服务器配置介绍
2025年阿里云香港服务器优惠汇总:ECS 2核4G+5M带宽仅199元/年;轻量服务器30M带宽24元/月起,200M峰值带宽25元/月起。轻量性价比高,适合个人及中小企业建站、跨境业务,具体配置价格详见官方活动页。
164 1

热门文章

最新文章