ecs初体验: docker配置 nginx服务器

简介: 了解ecs的基本使用, 学习docker的使用, 并制定计划以学习linux网络编程/web前后端的开发

计算机在读,想学习前后端开发\云计算服务的使用. 在阿里云的5小时实验课体验过ecs的强大之后,希望拥有一个长期的ecs服务器供持续学习使用. 在通过阿里云学生认证后网页显示飞天加速计划的学生优惠, 正好符合学习需求. 目前先从docker开始入手, 利用已有的镜像可以快速搭建好开发环境,从web开发入手学习前后端内容.

docker CE版本安装

  1. 安装依赖库bash yum install -y yum-utils device-mapper-persistent-data lvm2
  2. 添加软件源信息 bash yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
  3. 安装dockerCE

    yum makecache fast
    yum -y install docker-ce
  4. 启动docker

    systemctl start docker
    systemctl restart docker

docker 概念

docker容器是更轻量级的虚拟机实现. 虚拟机内部实现了完整的虚拟硬件并运行一个独立的操作系统, 十分重量级.
docker容器则利用操作系统内核提供的能力cgroup, 可以对进程隔离文件系统/各类资源的名字空间, 使得进程可以认为自己接触到的硬件资源都是独一无二. 而不只是虚拟内存地址空间是隔离的. 因此一个进程就是一个 虚拟机的效果, 所有这些进程都共用一个宿主机内核,明显轻量级很多.

由于全面的隔离, 进程可以有不同的运行时环境. docker镜像包含了各种类库等运行时环境,同一个镜像启动的容器(一个linux进程)就有完全相同的运行时环境. 避免反复配置环境的痛苦.
容器和镜像的关系 类似于对象和类的关系.
docker镜像源通常在hub.docker.com, 但是国内还是用国内的源比较好
https://cr.console.aliyun.com/ 能查到docker镜像的国内源

修改配置文件

tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://kqh8 **.mirror.aliyuncs.com"]
}
EOF

查找含有nginx 的dockers镜像
docker search nginx
docker pull nginx:latest

查看本地镜像
docker images

启动容器
docker run --name nginx-test -p 8080:80 -d nginx
--name nginx-test:容器名称。
-p 8080:80: 端口进行映射,将本地8080端口映射到容器内部的80端口。
-d nginx: 设置容器在后台一直运行。

此时宿主机是阿里云ecs, 有一个弹性公网ip. 默认的网络模式中(bridge) docker容器也有自己的虚拟网卡和局域网ip, 宿主机相当于网关.
通过 http://弹性IP:8080 来访问宿主机的8080端口等价于访问容器的80端口,获得http服务.

我对 ECS 弹性IP的理解

ecs作为一台服务器, 有自己的IP, 但不是固定公网IP.
弹性IP是中间经过一层NAT端口映射转换, 这个映射是由账号绑定的.
内网IP:内网port + 外网IP:外网port
弹性IP的情况下, 内网IP直接用的外网IP.

这样的好处是 ecs机器等云资源有变更的时候, 并不会改变对外的IP设置.
域名解析等服务不需要重新配置.
坏处是内网机器数目有限, 最多65535台内网机器同时访问同一个 (外网:端口)

在阿里云ECS实例的控制台, 可以查看ECS的名字 id, ip, 安全组策略等多种信息.
安全组可以设定很多防火墙规则, 过滤某些协议, 某些包, 开放 关闭端口等.
在阿里云控制台根据ecs的ip可以远程连接到ecs, 在命令行界面操作这台ecs
远程连接的时候需要有ecs上的linux账号密码, 之后可以配置rsa公钥登录.

也可以不通过阿里云的控制台, 直接用普通的ssh客户端直接远程登录ecs
ssh root@弹性IP

ssh 的妙用

  1. 端口转发实现内网穿透,让两个不同局域网的host1 和 host2能通过ecs连起来.
  2. ssh 配合 tar命令和 重定向功能实现本地文件复制到远程ecs 或者反过来.

疑问

是 ak 和 aksecret 是什么用处?
同一个host上的docker 网络模式: host/container/bridge
不同host上的不同docker如何通信互联?

学习计划

除了nginx外, 也可以使用tornado python web框架. 基于web框架自己写一个简单的博客系统(登录注册增删改博文的前端页面以及对应的后端crud操作) 这样可以学习postgresql的使用.还有前端开发整个流程.
后续的改进可以有登录状态的保持, 评论的功能.

实现一个2048的游戏挂在web 服务器下.

编译出调试版本nginx, 通过单步调试功能学习nginx的异步+io多路复用模型

搭建docker集群, 搭建负载均衡之类的架构.

相关实践学习
使用操作系统智能助手OS Copilot解锁操作系统运维与编程
在本实验场景中,将在阿里云ECS上体验OS Copilot产品。OS Copilot是阿里云操作系统团队基于大模型构建的OS智能助手。它具有自然语言问答、辅助命令执行、系统运维调优等功能,帮助用户更好地使用Linux,提升阿里云的使用体验。
7天玩转云服务器
云服务器ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,可降低 IT 成本,提升运维效率。本课程手把手带你了解ECS、掌握基本操作、动手实操快照管理、镜像管理等。了解产品详情:&nbsp;https://www.aliyun.com/product/ecs
相关文章
|
7月前
|
编解码 应用服务中间件 Linux
centos配置nginx-rtmp实现ffmpeg转码rtsp为rtmp视频流
centos配置nginx-rtmp实现ffmpeg转码rtsp为rtmp视频流
603 1
|
8月前
|
缓存 负载均衡 JavaScript
Nginx:高性能Web服务器与反向代理利器
Nginx:高性能Web服务器与反向代理利器
384 110
|
8月前
|
缓存 负载均衡 前端开发
Nginx:高性能的Web服务器与反向代理利器
Nginx:高性能的Web服务器与反向代理利器
408 99
|
8月前
|
负载均衡 前端开发 安全
Nginx:高性能的Web服务器与反向代理利器
Nginx:高性能的Web服务器与反向代理利器
320 98
|
8月前
|
缓存 负载均衡 前端开发
Nginx:高性能Web服务器的核心引擎
Nginx:高性能Web服务器的核心引擎
360 99
|
8月前
|
缓存 负载均衡 前端开发
Nginx:高性能Web服务器的核心引擎
Nginx:高性能Web服务器的核心引擎
268 47
|
7月前
|
Ubuntu 安全 应用服务中间件
详细指南:配置Nginx服务器在Ubuntu平台上
以上步骤涵盖了基本流程:从软件包管理器获取 Ngnix, 设置系统服务, 调整UFW规则, 创建并激活服务器块(也称作虚拟主机), 并进行了初步优化与加固措施。这些操作都是建立在命令行界面上,并假设用户具有必要权限(通常是root用户)来执行这些命令。每个操作都有其特定原因:例如,设置开机启动确保了即使重启后也能自动运行 Ngnix;而编辑server block则定义了如何处理进入特定域名请求等等。
390 18
|
7月前
|
Ubuntu 安全 应用服务中间件
详细指南:配置Nginx服务器在Ubuntu平台上
以上步骤涵盖了基本流程:从软件包管理器获取 Ngnix, 设置系统服务, 调整UFW规则, 创建并激活服务器块(也称作虚拟主机), 并进行了初步优化与加固措施。这些操作都是建立在命令行界面上,并假设用户具有必要权限(通常是root用户)来执行这些命令。每个操作都有其特定原因:例如,设置开机启动确保了即使重启后也能自动运行 Ngnix;而编辑server block则定义了如何处理进入特定域名请求等等。
643 17