【记录10】华为云耀云服务器L实例-使用Docker拉取nginx镜像的部署示例

74 阅读5分钟

Docker 是一个开源平台,用于开发、运输和运行应用程序。它使用容器化技术来包装应用程序及其依赖项,以便在任何环境中都能一致地运行。简单来说,Docker 可以将应用程序及其所有依赖项打包成一个容器,这样就可以确保它无论在哪里运行都表现一致。

### Docker 的主要组件:

1. Docker Engine:核心组件,负责创建和运行容器。

2. Docker Image:一个轻量级、独立的可执行软件包,包含运行应用所需的所有内容——代码、运行时、库、环境变量和配置文件。

3. Docker Container:Docker 图像的运行实例。容器是隔离的环境,其中运行应用程序和其依赖项。

4. Docker Hub:一个公共的图像注册中心,你可以从中拉取图像或推送自己的图像。

5. Docker Compose:一个用于定义和运行多容器 Docker 应用程序的工具。

6. Docker Swarm/Kubernetes:用于容器编排和集群管理的工具。

### Docker 的主要优点:

1. 一致性:由于应用程序和所有依赖项都被打包在同一个容器中,你可以确保应用程序在不同环境中的行为是一致的。

2. 可移植性:你可以在任何支持 Docker 的系统上运行 Docker 容器,无论是本地机器、数据中心还是云服务。

3. 易于管理:Docker 提供了强大的命令行和图形界面工具,用于管理容器的生命周期。

4. 隔离性:每个容器都在其自己的隔离环境中运行,这增加了应用程序的安全性和可靠性。

5. 微服务架构:Docker 非常适合微服务架构,因为你可以为每个服务创建一个单独的容器。

### 常见用途:

开发和测试:开发人员可以在本地机器上使用与生产环境相同的容器进行开发和测试。

持续集成和持续部署(CI/CD):自动化构建、测试和部署应用程序。

应用程序部署:在单个服务器或跨多个服务器的集群中部署应用程序。

服务编排:使用工具如 Docker Swarm 或 Knubernetes 自动管理多个容器。

Nginx(发音为 "Engine-X")是一个开源的、高性能的 HTTP 和反向代理服务器,也可以用作 IMAP/POP3/SMTP 代理服务器。它是由 Igor Sysoev 开发的,最初发布于 2004 年。Nginx 旨在提供低内存占用和高并发性,因此它通常用于服务高流量的网站和应用。

### Nginx 的主要特点:

1. 高性能和高并发: Nginx 能够处理数以千计的并发连接,这主要得益于其基于事件的架构。

2. 反向代理: Nginx 可以作为反向代理服务器,将客户端请求转发到后端服务器,并将后端服务器的响应返回给客户端。

3. 负载均衡: Nginx 可以分发进入的客户端请求到多个后端服务器,以实现负载均衡。

4. 静态文件服务: Nginx 非常擅长于快速地提供静态资源,如 HTML、CSS、JavaScript 和图像文件。

5. 缓存: Nginx 提供了灵活的缓存机制,可以缓存来自后端服务器的响应。

6. 安全: 提供 SSL/TLS 支持,还有其他一些安全特性,如 HTTP 基础认证、IP 黑名单等。

7. 灵活的配置: Nginx 的配置文件格式相对简单,易于理解和维护。

8. 扩展性: Nginx 支持各种第三方模块,以增加更多功能。

### 常见用途:

Web 服务器: 托管网站和 web 应用。

API 网关: 处理 API 请求并将其路由到适当的后端服务。

CDN 边缘节点: 作为内容分发网络的一部分。

流媒体服务器: 提供视频流和其他媒体内容。

本篇中,我们将完成Docker在华为云服务器上的部署,并完成nginx镜像的拉取。

当然,Docker 是一个非常强大的工具,它可以用于容器化应用和服务。以下是一些在 CentOS 上使用 Docker 的基础示例。

### 安装 Docker

1. 更新软件包索引

    ```bash

    sudo yum update -y

    ```

cba7f5f7e57948fadec040ff693af78b_AgAACmonqaUzHWgN3x9PALVb9hO_Ufep_w=960&h=248.png

2. 安装 Docker

    ```bash

    sudo yum install docker -y

    ```

b5052be2aae15ea24d1b03e35d00288f_AgAACmonqaVzX1hT9J1JpZzrre-R6ny4_w=959&h=253.png

(在此前我已安装过,故没有显示安装过程)

3. 启动 Docker 服务

    ```bash

    sudo systemctl start docker

    ```

d7c3af03c0dd16ba46cba74f20855398_AgAACmonqaXTEWNNdH5DIbsLUF4Y4pNd_w=711&h=47.png

4. 设置 Docker 开机自启

    ```bash

    sudo systemctl enable docker

    ```

ddd5d19e8db6f77a813bcdae271d13ec_AgAACmonqaWdsAZM02tIYZNsnIP7ZgUB_w=688&h=48.png

### 使用 Docker

1. 拉取一个镜像(以 nginx 为例):

    ```bash

    sudo docker pull nginx

    ```

40b64f3732524819f761105027142c7f_AgAACmonqaUwXbzGGjtL_J4Lp9Y-8UbI_w=984&h=267.png

2. 运行一个容器

    ```bash

    sudo docker run -d -p 8080:80 nginx

    ```

    这将运行一个 nginx 容器,并将其 80 端口映射到主机的 8080 端口。

ff30ba07f16dabcf0beee2590dd020df_AgAACmonqaUsuFi698ZJPbjl4DQywOyW_w=852&h=46.png

出现以上提示时,表示已经成功地运行了一个 Nginx 容器,并将容器的 80 端口映射到了主机的 8080 端口。通过访问 http://[你的服务器IP地址]:8080 来看到 Nginx 的默认欢迎页面。

0c3976eac97543b94471a9cf046b1200_AgAACmonqaU1FTuZ1XhFzbX69Z032Ekq_w=1079&h=399.png

3. 查看运行中的容器

    ```bash

    sudo docker ps

    ```

8c507c3dab6831c0c27d5b855f8ab9be_AgAACmonqaUVbotOASJKd578gdr-srf4_w=956&h=112.png

4.查看本地镜像

    ```bash

    sudo docker images

    ```

5f57fcf79ef86ad76a18504913b23fc0_AgAACmonqaXaJErsphNOYZEwJWHFPnGf_w=899&h=139.png

到此为止,我们已经成功完成了Docker容器在华为云耀云服务器L实例上的部署,并完成了nignx镜像的拉取。Docker 的这些特性和优点使其成为现代软件开发和运维的重要工具,而Nginx 在互联网公司、大型企业和个人开发者中都非常受欢迎,因为它既稳定又高效。它是许多高流量网站背后的关键组件,包括 Netflix、Hulu、GitHub、Dropbox 等。

使用华为云耀云服务器L实例部署docker,我们在强大而稳定的服务基础上,获得了一个支持更高效的现代软件开发运维的云环境,这为我们部署更多项目奠定了坚实的基础、提供了强大的支撑。