作者在您提到的文章的第Prerequisites section页中列举了对应用程序的不同要求:
要学习本教程,您需要:
- 具有Docker和Docker Compose的运行Linux虚拟机
- 域名
需要一个便宜的域名来练习吗?多个域注册器
我更改了列表中元素的顺序,以反映需求的实际顺序.
你首先需要的是一台可以运行应用程序的机器.
这台机器可以托管在您认为合适的任何地方、本地、您自己的数据中心,或者,正如本文中所建议的,现在您可以非常轻松地在云中配置机器,例如,在任何不同的公共云Provider 、AWS、GCP或Azure等中.
该机器的要求如下:
- 这台机器应该可以通过互联网访问,其中包括创建DNS条目,并允许我们加密和相关的机器人来处理SSL证书.
- 您可以使用Windows或Linux机器,但为了简单、与Docker紧密集成以及许可目的,尤其是为了测试目的,免费的Linux版本,例如Ubuntu或Debian,应该更合适.
- 在此机器中,应安装docker和docker compose.
例如,假设您使用的是Ubuntu,您可以按照示例this excellent guide安装docker软件.
您还需要安装docker-compose.
但是,如何从Windows机器连接到linux实例来执行这些操作,然后再运行应用程序呢?
在Linux中,通常会使用SSH.
在基于Linux或Unix的系统中,SSH支持是现成的;在Windows中,您很可能需要使用Putty.
网络上有很多关于Putty和如何使用它的教程:例如this one.
在Linux中,您可以使用终端连接到您的机器,并键入以下内容:
ssh user@your-ip-or-domain
Putty GUI将为您提供执行类似连接所需的所有功能:只需定义机器的公共IP地址、用户名和密码(或者您可以使用SSH密钥对机器进行身份验证).
此用户名和密码通常由您机器的Provider 在机器设置过程中提供.
为了实现这一点,您可能需要在主机Provider 中配置某种防火墙软件,以允许连接到机器的SSH(端口22)和HTTP/S(端口80和443),用于Django webapply.请注意,至少乍一看,将可以连接到实例的IP地址限制为您自己的IP地址,这对于SSH端口尤其重要.
然后,我将执行DNS设置.
DNS基本上允许您为您的机器IP地址提供可识别的别名.
除了便于通过名称访问您的站点之外,您还需要将DNS记录分配给您的机器,以便使用Let’s Encrypt,因为在颁发站点SSL证书时,需要将该信息作为验证步骤.
这个DNS可以用不同的方式分配:你只需要你机器的IP地址和一些DNSProvider .
其中有很多,例如,AWS Route 53、GCP DNS或Azure DNS、GoDaddy等(例如,请参阅this).
我从未使用过这项服务,但也许你也可以按照文章中的建议使用Freenom.
配置完成后,作为nginx服务器配套安装的Certbot将使其正常工作,并将颁发必要的证书.
之后,如本文所述,将应用软件上传到您的机器上.
在Linux中,通常使用SCP来实现这一目的.
同样,如果您作为客户机运行Linux或Unix,那么该协议是现成的:
scp -r $(pwd)/{app,nginx,.env.staging,.env.staging.db,.env.staging.proxy-companion,docker-compose.staging.yml} user@your-ip-or-domain:/path/to/django-on-docker
运行Windows时,可以使用WinSCP执行此步骤.
要完成此操作,请使用Putty和SSH再次连接到机器
cd /path/to/django-on-docker
docker-compose -f docker-compose.staging.yml up -d --build