首页 > 系统相关 >阿里云1+X云计算开发与运维实战——在ECS中部署容器化应用Nginx

阿里云1+X云计算开发与运维实战——在ECS中部署容器化应用Nginx

时间:2023-04-22 23:02:17浏览次数:35  
标签:00 运维 nginx LYX Nginx ECS io docker root

1.1 实验概述

开始实验后,系统自动创建一个Linux的ECS实例。根据实验步骤操作说明,安装Docker应用,熟悉Docker的基本指令,拉取容器化应用Nginx的镜像,部署Nginx应用,最后验证部署结果。

1.2 实验目的

熟悉Docker的安装和基本指令,熟悉部署Docker应用基本方法。

1.3 实验架构

阿里云1+X云计算开发与运维实战——在ECS中部署容器化应用Nginx_Docker

1.4 实验准备

实验资源:

阿里云1+X云计算开发与运维实战——在ECS中部署容器化应用Nginx_nginx_02

2.1 步骤1:在ECS中安装Docker

使用远程连接工具,连接到本实验创建的云服务器ECS实例上。

阿里云1+X云计算开发与运维实战——在ECS中部署容器化应用Nginx_Docker_03

输入命令docker --version,查看是否已有Docker客户端。如果ECS实例没有安装Docker客户端,结果如下:

[root@LYX ~]# docker --version
bash: docker: command not found
[root@LYX ~]#

使用软件包管理器yum安装Docker的客户端。输入命令yum –y install docker,可以看到yum会自动解决依赖关系,安装必要的依赖环境,然后安装Docker应用。安装成功后,输出如下信息:

[root@iZuf63afuzdjhu0p39fdasZ ~]# yum -y install docker
Loaded plugins: fastestmirror
base                                           | 3.6 kB     00:00     
epel                                           | 4.7 kB     00:00     
extras                                         | 3.4 kB     00:00     
updates                                        | 3.4 kB     00:00     
(1/7): base/7/x86_64/group_gz                    | 166 kB   00:00     
(2/7): epel/x86_64/group_gz                      |  88 kB   00:00     
(3/7): epel/x86_64/updateinfo                    | 954 kB   00:00     
(4/7): extras/7/x86_64/primary_db                | 156 kB   00:00     
(5/7): updates/7/x86_64/primary_db               | 1.4 MB   00:00     
(6/7): epel/x86_64/primary_db                    | 6.6 MB   00:00     
(7/7): base/7/x86_64/primary_db                  | 6.0 MB   00:00     

查看Docker的版本,确认安装成功。执行命令docker --version,结果如下所示:

[root@LYX ~]# docker --version
Docker version 1.13.1, build 7d71120/1.13.1
[root@LYX ~]#

2.2 步骤2:熟悉Docker的基本指令

启动Docker 服务。执行命令service docker start,结果如下所示:

[root@LYX ~]# service docker start
Redirecting to /bin/systemctl start docker.service
[root@LYX ~]#

拉取CentOS的Docker镜像。执行命令docker pull centos:latest,可以看到Docker开始从官方公共仓库DockerHub中,开始拉取CentOS的Docker镜像,执行结果如下所示:

[root@LYX ~]# docker pull centos:latest
Trying to pull repository docker.io/library/centos ...
latest: Pulling from docker.io/library/centos
a1d0c7532777: Pull complete
Digest: sha256:a27fd8080b517143cbbbab9dfb7c8571c40d67d534bbdee55bd6c473f432b177
Status: Downloaded newer image for docker.io/centos:latest
[root@LYX ~]#

查看镜像。执行命令docker images,可以看到本地的镜像仓库存放的镜像,如下所示:

[root@LYX ~]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
docker.io/centos    latest              5d0da3dc9764        19 months ago       231 MB
[root@LYX ~]#

运行CentOS容器并进入CentOS的命令行,并查看Docker容器版的CentOS下的文件目录结构。执行命令docker run –it docker.io/centos:latest bash,将镜像名称和标签替换为刚才拉取的CentOS的全称和标签。在容器里面,执行命令ls,可以看到,容器版的CentOS文件目录和一般的操作系统CentOS类似,如下所示:

[root@LYX ~]# docker run -it docker.io/centos:latest bash
[root@2a3cb30fdacf /]#
[root@2a3cb30fdacf /]# ls
bin  dev  etc  home  lib  lib64  lost+found  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  var
[root@2a3cb30fdacf /]#

暂离容器,即退出容器界面而不关闭容器。使用组合按键,Ctrl+P+Q,可以从容器界面返回ECS命令行界面。在ECS命令行界面,查看容器列表。执行命令docker ps,可以看到当前正在运行的容器,如下所示:

[root@53ba7999ef3f /]# [root@LYX ~]#
[root@LYX ~]#
[root@LYX ~]# docker ps
CONTAINER ID        IMAGE                     COMMAND             CREATED             STATUS              PORTS               NAMES
53ba7999ef3f        docker.io/centos:latest   "bash"              10 seconds ago      Up 9 seconds                            objective_euler
[root@LYX ~]#

停止CentOS容器。使用容器的ID,将容器停止。如此处容器ID为 53ba7999ef3f,则执行命令docker stop 53ba7999ef3f,结果如下:

[root@LYX ~]# docker stop 53ba7999ef3f
53ba7999ef3f
[root@LYX ~]#

再次查看容器列表。执行命令docker ps,可以看到CentOS容器已经被停止,移出了容器列表,如下所示:

[root@LYX ~]# docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
[root@LYX ~]#

2.3 步骤3:配置阿里云镜像加速器

修改daemon配置文件/etc/docker/daemon.json来使用加速器。执行命令:vim /etc/docker/daemon.json,在文件中写入:{ "registry-mirrors":["https://610ruqqi.mirror.aliyuncs.com"] }。其中,加速的链接地址可以在阿里云控制台-容器镜像服务-镜像加速器查看。

打开vim编辑器后,按“i”键进入编辑模式,对默认首页文件进行修改;修改完成后按“Esc”键退出编辑模式,然后输入组合键“:wq”保存文件并退出。如下所示:

sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://jc5mcdvz.mirror.aliyuncs.com"]
}
EOF

阿里云1+X云计算开发与运维实战——在ECS中部署容器化应用Nginx_Docker_04

重启守护进程和Docker客户端。执行命令:systemctl daemon-reload,执行命令:service docker restart。结果如下:

sudo systemctl daemon-reload
sudo systemctl restart docker

拉取Ubuntu镜像,验证加速效果。执行命令:docker pull ubuntu,结果如下:

[root@LYX ~]# docker pull ubuntu
Using default tag: latest
Trying to pull repository docker.io/library/ubuntu ...
latest: Pulling from docker.io/library/ubuntu
7b1a6ab2e44d: Pull complete
Digest: sha256:626ffe58f6e7566e00254b638eb7e0f3b11d4da9675088f4781a50ae288f3322
Status: Downloaded newer image for docker.io/ubuntu:latest
[root@LYX ~]#

[root@LYX ~]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
docker.io/ubuntu    latest              ba6acccedd29        18 months ago       72.8 MB
docker.io/centos    latest              5d0da3dc9764        19 months ago       231 MB
[root@LYX ~]#

2.4 步骤4:部署Docker容器应用Nginx

查找Nginx镜像。执行命令docker search nginx,结果如下

[root@LYX ~]# docker search nginx
INDEX       NAME                                                        DESCRIPTION                                     STARS     OFFICIAL   AUTOMATED
docker.io   docker.io/nginx                                             Official build of Nginx.                        18413     [OK]
docker.io   docker.io/linuxserver/nginx                                 An Nginx container, brought to you by Linu...   192           
docker.io   docker.io/bitnami/nginx                                     Bitnami nginx Docker Image                      158                  [OK]
docker.io   docker.io/ubuntu/nginx                                      Nginx, a high-performance reverse proxy & ...   84            
docker.io   docker.io/privatebin/nginx-fpm-alpine                       PrivateBin running on an Nginx, php-fpm & ...   72                   [OK]
docker.io   docker.io/bitnami/nginx-ingress-controller                  Bitnami Docker Image for NGINX Ingress Con...   25                   [OK]
docker.io   docker.io/rancher/nginx-ingress-controller                                                                  11            
docker.io   docker.io/webdevops/nginx                                   Nginx container                                 11                   [OK]

拉取Nginx镜像。执行命令docker pull nginx,该命令默认拉取最新版本(latest)的Nginx镜像。

[root@LYX ~]# docker pull nginx
Using default tag: latest
Trying to pull repository docker.io/library/nginx ...
latest: Pulling from docker.io/library/nginx
a2abf6c4d29d: Pull complete
a9edb18cadd1: Pull complete
589b7251471a: Pull complete
186b1aaa4aa6: Pull complete
b4df32aa5a72: Pull complete
a0bcbecc962e: Pull complete
Digest: sha256:0d17b565c37bcbd895e9d92315a05c1c3c9a29f762b011a10c54a66cd53c9b31
Status: Downloaded newer image for docker.io/nginx:latest
[root@LYX ~]#

启动nginx容器实例,并暴露外部端口。执行命令docker run --name nginx -p 8080:80 -d docker.io/nginx,结果如下:

[root@LYX ~]# docker run --name nginx -p 8080:80 -d docker.io/nginx
8f0f70a4b1f6c92b320173a266f2e61a5e54a4f7b0964b0aabfdde6c8d7f0d5e
[root@LYX ~]#

至此,Nginx已经成功地以容器方式运行在ECS中了。

参数说明:

--namenginx:指定运行的容器实例的名称为nginx;

-p8080:80:通过-p来指定Docker容器中nginx实例对外开放的端口。其中:第一个8080端口是对外暴露的端口,用户可以通过此端口访问Nginx服务;

第二个80端口是映射到Nginx容器里的端口,默认端口为80。

2.5 步骤5:验证Nginx部署结果

查看容器进程。执行命令docker top nginx,可以看到Nginx容器有两个进程在运行,结果如下:

[root@LYX ~]# docker top nginx
UID                 PID                 PPID                C                   STIME               TTY                 TIME                CMD
root                5439                5423                0                   22:40               ?                   00:00:00            nginx: master process nginx -g daemon off;
101                 5516                5439                0                   22:40               ?                   00:00:00            nginx: worker process
[root@LYX ~]#

查看容器列表。执行命令docker ps,可以看到Nginx容器以及暴露给外部的端口,结果如下:

[root@LYX ~]# docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                  NAMES
8f0f70a4b1f6        docker.io/nginx     "/docker-entrypoin..."   40 seconds ago      Up 39 seconds       0.0.0.0:8080->80/tcp   nginx
[root@LYX ~]#

验证部署结果。通过个人PC的浏览器访问nginx,地址为ECS实例IP:暴露端口,如下所示: 

阿里云1+X云计算开发与运维实战——在ECS中部署容器化应用Nginx_docker_05

标签:00,运维,nginx,LYX,Nginx,ECS,io,docker,root
From: https://blog.51cto.com/lyx888/6215704

相关文章

  • 阿里云1+X云计算开发与运维实战——使用kubectl命令行工具对容器进行操作
    1、实验概述使用Kubectl 命令行工具操作 kubernetes 集群是最直接的管理集群的途径。开始实验后,系统自动在阿里云上创建一个Kubernetes集群。根据实验步骤操作说明,远程登陆集群master节点,然后使用kubectl命令行工具,对集群进行基本操作。包括创建资源对象,显示和查找资源对象,更新......
  • 1、企业级VPN服务OpenVPN与如何购买阿里云ECS实例
    OpenVPN(虚拟专用网络)OpenVPN部署阿里云OpenVPN实战环境(https:www.aliyun.com)阿里云服务器购买专有网络标准:1、按量付费,华北3张家口可用区A区,X86通用g62cpu8GiB,买三台,要求系统一样,公共镜像rukey8.664位,ESSDAutoPL40GiB,创建交换机,选择专有网络,并给交换机起名M50-NET,取消......
  • 阿里云1+X云计算开发与运维实战——使用弹性伸缩调整弹性计算资源
    实验概述开始实验后,系统会自动创建一台部署了WEB服务器的ECS实例。首先,登陆到阿里云管理控制台,创建该ECS实例的自定义镜像,用于之后的弹性伸缩。然后,使用阿里云弹性伸缩服务,实现ECS实例的定时自动弹性扩容,从而满足在高并发的时候,系统仍然可以正常提供服务。最后,仅清理所有使用阿里云......
  • 阿里云1+X云计算开发与运维实战——使用云监控和弹性伸缩实现弹性架构设计
    实验概述本实验会自动创建2台部署了云监控插件的ECS实例。首先,配置负载均衡实例的监听配置,创建ECS实例的自定义镜像。然后,在创建弹性伸缩服务,配置报警任务,将已创建的ECS实例加入伸缩组和负载均衡实例后端。最后,增加ECS的CPU使用率达到100%,通过弹性伸缩服务,自动新建ECS实例并添加到......
  • SRE接手新业务首要工作:运维准入测试
    如果接手的是一坨随时可能散架的破车,就算SRE有通天之能,也很难通过运维手段给变成布加迪威龙。接手的时候一定要做好准入测试!很多公司会有运维准入规范,但是通常缺少运维准入测试,导致了后续诸多背锅问题。前言你可能会遇到下面的问题:告诉研发做架构设计的时候要叫上运维做review,研发......
  • nginx配置文件
    关于Nginx的核心配置文件nginx.confusernginx;worker_processesauto;error_log/var/log/nginx/error.lognotice;pid/var/run/nginx.pid;events{worker_connections1024;}http{include/etc/nginx/mime.types;default_typeapplication/oct......
  • 反向代理---nginx
    1.安装mysqlhttps://www.cnblogs.com/tony-hyn/p/15777762.html远程连接mysql服务器时,无法连接.===防火墙是否把3306端口放行。查看防火墙放行的端口号:firewall-cmd--list-port添加放行的端口号:firewall-cmd--add-port=3306/tcp--zone=public--permanent并重启防......
  • 阿里云1+X云计算开发与运维实战—— 使用负载均衡实现https与http的混合访问
    实验概述    互联网巨头雅虎官方对外发布消息,承认在2014年的一次黑客袭击中,至少5亿用户的数据信息遭窃。此次事件让我们再次意识到网站安全的重要性,网站加密防护的必要性。我们可以使用HTTPS协议对网站进行全站加密,但是,大部分用户已经习惯直接输入域名(即使用 HTTP 协议)访问网......
  • 阿里云1+X云计算开发与运维实战——负载均衡使用初体验
    本实验通过使用阿里云负载均衡SLB以及对负载均衡SLB后端服务器ECS的权重进行修改,可以快速解决上述的问题。实验目标 完成此实验后,可以掌握的能力有:配置负载均衡SLB的监听规则,并将ECS实例部署到SLB后端;通过设置负载均衡SLB后端服务器ECS的权重值,分配用户访问后端ECS实例的比例。背景......
  • 12、Argo rollouts结合Ingress Nginx进行Canary流量迁移
    Argorollouts结合IngressNginx进行Canary流量迁移Istio环境中支持两种流量分割模式◼更新期间,使用不同的Service分别承载新旧版本的流量◆Canary和Stable版本分别对应一个独立的Service⚫canaryService:待发布的新版本⚫stableService:待更新的......