在阿里云上的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 installsudo apt-get install apt-transport-httpssudo apt-get install ca-certificatessudo apt-get install curlsudo 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"

出现如下提示,则正确:

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

执行到此步时,出现以下报错:

执行以下语句:

apt install docker.io

会显示安装过程,并可明显看到成功与否,基本都是成功的,然后重新执行   sudo service docker restart

11.切换当前会话到新的组:

newgrp - docker

2. 安装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

猜测因为启动了网络,那么是否有可能是防火墙的原因,输入 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下,是不能直接访问到的

其实大家可以类比下自己的项目,Tomcat本身的加载机制已经很完善和严谨,所以我没必要怨怼,按规则做就好

我用website包了一层,放到webapps下

然后通过 FileZilla 直接传输到Ubantu的Tomcat/webapps下,重新查看当前的容器是否有在启动

命令行:docker ps -a,

如果只是 docker ps,只会显示当前运行中的容器, 加上  -a 把全部容器的状态显示出来,我们只需查看非exited 的就好,如果觉得不想看那么多,可以做下清理:

命令行:

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

sudo docker rm $(sudo docker ps -a -q)

做镜像的话,阿里云上的容器镜像服务,有比较专业的说明,还算比较容易操作

完成以上操作,我们打开浏览器访问:

然后很高兴的关闭了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多个域名

另外还有阿里云的优惠券,新老用户需要的拿去:

https://chuangke.aliyun.com/invite?userCode=dansrwg4

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

  1. 【华为云服务之】在华为云ECS上安装Docker

    前一篇博文,介绍了创建华为云弹性云服务器ECS.这篇文章是在华为云ECS上安装Docker.我们创建的ECS安装的操作系统是Ubuntu18.04. 首先我们使用Windows下的Linux Shel ...

  2. 在 阿里云ECS 上安装 CDH6.2 standalong

    在 阿里云ECS 上安装 CDH6.2 0. pre Install 0.1 ECS 配置 基本配置至少 4核 16GB,比较烧 内存 8核 + 64GB 100GB SSD 5M 宽带 操作系统看 ...

  3. 在阿里云ECS上安装流媒体服务器软件Ti Top Streamer

    一.产品概述 Ti Top Streamer是一个流媒体服务器软件,支持多种视频流传输协议.支持多协议分发和转推,拥有漂亮而优雅的管理界面,支持中英双语切换,具备丰富的Http Rest API. T ...

  4. 共享在阿里云ecs上安装自定义iso的方法

    本文关键字:阿里云 自定义iso,阿里云 自定义镜像 应用场景: 首先,最基本的目的:你想在云主机上安装自定义iso,比如一份精简或优化过了的镜像/高版本的系统镜像,而不是运营商提供给你的那些,或你想 ...

  5. 在阿里云服务器上安装docker

    通过XShell连接上自己的云服务器,我的是CentOS7 显示操作系统的发行版号 [root@izbp19qq88w1vt31f8zf3vz ~]# uname -r 3.10.0-514.26.2 ...

  6. 【docker系列】阿里云Centos7上安装docker

    Docker 支持以下的 64 位 CentOS 版本: CentOS 7 CentOS 8 更高版本... 查看系统版本 [root@iZuf6etbb1qeqmbvw26h75Z ~]# lsb_ ...

  7. Docker 方式安装 zipkin (linux 、阿里云ECS上安装)

    前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家.点击跳转到教程. 1. 查镜像: docker search zipkin 2. 拉取镜像:(不写明版本号时,默认使用 ...

  8. 阿里云linux上安装与配置Mysql

    记录下在阿里云linux上安装与配置Mysql 环境:阿里云ECS服务器,系统为centos7.2 用户:root 文章目录 删除原来的数据库: 下载与安装MySQL: 关于登录MySQL: 配置远程 ...

  9. 在阿里云ECS上搭建Skynet服务器与Unity通信

    在阿里云ECS上搭建Skynet服务器与Unity通信 创建阿里云ECS实例 Skynet搭建 服务端代码部分 客户端部分(Unity) 创建阿里云ECS实例 这部分的话按照阿里云流程去做就可以了.也 ...

最新文章

  1. 由于找不到PBSYS90.dll,无法继续执行代码。重新安装程序可能会解决此问题!
  2. 数学仍然是人类的“火炬”
  3. python进阶免费-菜鸟世界 -python进阶---生成器
  4. Markdown语法入门
  5. 几个基本概念辨析:流敏感,路径敏感和上下文敏感
  6. css:hover伪类的使用
  7. js 免费语音合成 (百度AI)- 代码篇
  8. CDOJ--1850
  9. 遗传算法及c++实现
  10. html里关于表单的一些操作代码
  11. Ubuntu无法联网解决方案
  12. 不吹不黑,网络安全工程师年薪30万是真的吗?
  13. Dev C++可以编译但运行时提示failed to execute且error 0:操作成功完成
  14. 如何在Windows上下载java
  15. signature=cb30417dfa65eef445418827e0f0e0e6,以太坊P2P网络节点初始化
  16. pyspider创建淘女郎图片爬虫任务-运行流程解析
  17. TeeChart控件的安装与常用 功能设置
  18. 什么是超线程,开启超线程有什么作用
  19. jpg,png,区别
  20. python有道字典_利用python实现命令行有道词典的方法示例

热门文章

  1. 二十一、osi七层模型
  2. 图像的通道(channels)问题
  3. Python list合并(列表合并),dict合并(字典合并)
  4. 工业控制系统ICS网络安全简析
  5. 物联网通信协议——比较-MQTT、 DDS、 AMQP、XMPP、 JMS、 REST、 CoAP
  6. twisted系列教程十七–用inlineCallbacks来管理callbacks
  7. O/R Mapping再乱弹
  8. Spring----JmsTemplate
  9. Centos 下PHP编译安装fileinfo扩展
  10. 学习javascript语言精粹的笔记