如何在AWS上部署Docker容器?

在此教程中,将说明如何将Docker容器部署到EC2实例上。

这个教程只是为了说明工作方法而准备的。如果您想在AWS上部署Docker容器,我们建议您使用Amazon Elastic Container Service(ECS)或者更好的选择Amazon Elastic Kubernetes Service(EKS)。关于这两个服务的使用方法,我们将在另一个教程中进行解释。

在本教程中,我们将简单地部署Nginx服务器,但您也可以使用这种方法来部署完整的网站。例如,WordPress网站,Laravel网站,ECCube商店等。

创建EC2实例

请访问EC2控制台。

Screenshot 2023-12-12 at 11.23.46__01.png

请点击”启动实例”。

Screenshot 2023-12-12 at 11.23.46__02.png

前往创建EC2实例的界面。

Screenshot 2023-12-12 at 11.27.11__03.png

请确认您是否在“东京”地区。

Screenshot 2023-12-12 at 11.27.11__04.png

请前往「姓名和标签」部分。

Screenshot 2023-12-12 at 11.27.11__05.png

请在「姓名」栏中写上「MyDocker」。

Screenshot 2023-12-12 at 11.32.39__07.png

请确保您正在使用Amazon Linux操作系统。

Screenshot 2023-12-12 at 11.36.30__08.png

请确认您正在使用 t2.micro 实例。

Screenshot 2023-12-12 at 11.40.02__09.png

在这个教程中,不需要使用密钥对。

请选择“不推荐使用无密钥对继续”。

Screenshot 2023-12-12 at 11.49.30.png

请转到「网络设置」部分。

Screenshot 2023-12-12 at 11.52.35__10.png

亚马逊网络服务(AWS)提到了创建安全组。

Screenshot 2023-12-12 at 11.52.35__11.png

就我而言,安全组的名称为launch-wizard-2。不过,请注意,对于你们来说,可能会有不同的名称。

然后,勾选“允许来自互联网的HTTP流量”,使实例能够访问互联网。

Screenshot 2023-12-12 at 11.58.04.png

このチュートリアルでは、EC2インスタンスを自動的に起動するためにユーザーデータを使用しません。EC2インスタンスの展開に慣れてきたら、ユーザーデータをご利用いただくことをお勧めします。

请点击”启动实例”按钮。

Screenshot 2023-12-12 at 12.05.45.png

请返回EC2控制台的页面。

Screenshot 2023-12-12 at 12.08.04.png

请等待实例的状态变为“运行中”。

Screenshot 2023-12-12 at 12.11.06.png

请选择实例。

Screenshot 2023-12-12 at 12.14.30.png

请点击菜单中的“连接”选项。

Screenshot 2023-12-12 at 12.14.30 copy.png

之后,应该会转移到这个屏幕上:

Screenshot 2023-12-12 at 12.17.48.png

请点击“连接”按钮。

Screenshot 2023-12-12 at 12.17.48.png

应该会弹出一个新窗口:

Screenshot 2023-12-12 at 12.21.14.png

请键入以下命令:

sudo su
yum update -y
yum install -y docker
yum install -y libxcrypt-compat
usermod -a -G docker ec2-user
id ec2-user
newgrp docker
cd /home/ec2-user/
curl -L https://github.com/docker/compose/releases/download/1.28.5/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
systemctl enable docker.service
systemctl start docker.service
vim docker-compose.yaml

请在docker-compose.yaml文件中添加以下代码:

version: '3'
services:
  nginx:
    image: nginx
    ports:
      - "80:80"

请保存docker-compose.yaml文件,并执行以下命令。

docker-compose up -d

请返回到EC2实例列表页面,然后只选择实例。

Screenshot 2023-12-12 at 12.58.35.png

然后,请选择“网络连接”选项卡。

Screenshot 2023-12-12 at 13.00.44.png

请搜索“公共IPv4地址”。

Screenshot 2023-12-12 at 13.02.44.png

我个人的情况下,公网IPv4地址是54.250.208.183。

然后,请复制此IP并粘贴到浏览器中。如果一切顺利,应该会显示这个页面:

Screenshot 2023-12-12 at 13.04.58.png

视频 (Video)

如果有必要的話,我会在Youtube上制作视频。

为什么要在网页应用中使用Docker?

Docker提供了一种功能,可以在被称为容器的轻度隔离环境中打包和运行应用程序。这种隔离和安全性使得可以在特定的主机上同时运行多个容器。

在DOCKER的WEB托管中的优势

Docker在WEB托管方面有哪些优点?以下是在WEB托管背景下提供的Docker的几个主要优点:

简化开发流程

以前,设置WEB托管环境需要手动安装和配置所需的服务和库。而Docker使用容器技术来简化这个过程。使用Docker,可以创建包含应用程序所需的所有服务的容器。这些容器可以轻松地启动、停止和删除,从而简化整个开发过程。

可伸缩性

Web托管的主要挑战之一是处理不同量的流量。网站可能会经历高流量或相对较低的流量。使用Docker容器技术,可以轻松根据需求扩展应用程序。

通过运行同一应用程序的多个Docker容器实例,可以有效应对流量的增减。当需求较低时,只需减少正在运行的容器数量即可。正是由于这种灵活性,Docker成为了Web托管中的强大工具。

资源效率

Docker容器是一种轻量级的技术,由于共享主机系统的操作系统内核,因此比传统虚拟机更具资源效率。这意味着可以在单个机器上运行多个Docker容器,无需担心资源枯竭的问题。在Web托管的背景下,这使得可以在单台服务器上托管多个网站,最大限度地利用资源并降低托管成本。

分离和安全

Docker容器共享主机系统的操作系统内核,但彼此独立运行。这意味着一个容器的进程不会干扰其他容器。在网络托管中,由于可能在同一台服务器上运行多个应用程序和网站,因此这种分离是一个重要的优点。

此外,Docker还提供了一些安全功能,例如限制容器资源使用量。此外,您还可以使用Docker的内置安全功能,如seccomp配置和AppArmor,进一步保护容器的安全。

广告
将在 10 秒后关闭
bannerAds