如何在AWS上部署Docker容器?
在此教程中,将说明如何将Docker容器部署到EC2实例上。
在本教程中,我们将简单地部署Nginx服务器,但您也可以使用这种方法来部署完整的网站。例如,WordPress网站,Laravel网站,ECCube商店等。
创建EC2实例
请访问EC2控制台。
请点击”启动实例”。
前往创建EC2实例的界面。
请确认您是否在“东京”地区。
请前往「姓名和标签」部分。
请在「姓名」栏中写上「MyDocker」。
请确保您正在使用Amazon Linux操作系统。
请确认您正在使用 t2.micro 实例。
在这个教程中,不需要使用密钥对。
请选择“不推荐使用无密钥对继续”。
请转到「网络设置」部分。
亚马逊网络服务(AWS)提到了创建安全组。
就我而言,安全组的名称为launch-wizard-2。不过,请注意,对于你们来说,可能会有不同的名称。
然后,勾选“允许来自互联网的HTTP流量”,使实例能够访问互联网。
このチュートリアルでは、EC2インスタンスを自動的に起動するためにユーザーデータを使用しません。EC2インスタンスの展開に慣れてきたら、ユーザーデータをご利用いただくことをお勧めします。
请点击”启动实例”按钮。
请返回EC2控制台的页面。
请等待实例的状态变为“运行中”。
请选择实例。
请点击菜单中的“连接”选项。
之后,应该会转移到这个屏幕上:
请点击“连接”按钮。
应该会弹出一个新窗口:
请键入以下命令:
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实例列表页面,然后只选择实例。
然后,请选择“网络连接”选项卡。
请搜索“公共IPv4地址”。
我个人的情况下,公网IPv4地址是54.250.208.183。
然后,请复制此IP并粘贴到浏览器中。如果一切顺利,应该会显示这个页面:
视频 (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,进一步保护容器的安全。