一、准备阿里云服务器
- 首先在阿里云服务器免费试用网站中选择相应的服务器,本次搭建选择的服务器是适合入门级开发者的服务器。
- 在阿里云控制台上创建一个云服务器( ECS 实例)并获取访问凭证,包括主机 IP 地址、用户名和密码。
- 在服务器上安装 Docker ,具体步骤参考阿里云官方文档,来自阿里云服务器免费试用网站的试用教程。
二、在本地开发环境准备 Docker 镜像
1、在本地开发文件夹下创建一个 Dockerfile ,用于定义构建 Docker 镜像的配置。
- 在 Dockerfile 中指定基础镜像,本项目指定的是 NiceGUI 的官方镜像。
- 使用
WORKDIR
指令可以来指定工作目录(或者称为当前目录)。 - 将项目文件复制到镜像中,通过
ADD
命令将项目代码复制到镜像的指定路径。 - 安装项目所需的依赖包,可以使用
pip install
命令在镜像中安装所需的 Python 包。 EXPOSE
指令定义了提供服务的初始传入端口。这些端口可供容器内的进程使用。- 指定容器启动时要执行的命令,使用
CMD
命令指定要运行的 Python 脚本或启动命令。
# 基础镜像
FROM zauberzeug/nicegui
# 设置工作目录为/proj
WORKDIR /proj
# 复制依赖文件
ADD . .
# 安装requirments.txt中列举的包
RUN pip install -r requirements.txt
# 向容器外暴露一个端口
EXPOSE 80
# 在容器启动时运行main.py
CMD ["python", "main.py"]
本地开发文件夹目录如图所示:
2、 在本地构建 Docker 镜像。
(1)打开终端,进入包含 Dockerfile 的项目目录。使用docker build --platform linux/amd64 -t <your_image_name>:<tag> .
构建 Docker 镜像。其中,your_image_name
是你给镜像起的名称,tag
是版本标签。注意命令最后的.
表示使用当前目录作为上下文构建镜像。
(2)将本地镜像上传到 Docker 仓库。
- 执行
docker login --username=<镜像仓库登录名> registry.cn-<个人版实例所在的地域>.aliyuncs.com
,登录到阿里云的 Docker 仓库。 - 执行
docker tag <image id> registry.cn-<个人版实例所在的地域>.aliyuncs.com/<your_repository>/<your_image_name>:<tag>
,将本地构建的镜像标记 - 执行
docker push registry.cn-<个人版实例所在的地域>.aliyuncs.com/<your_repository>/<your_image_name>:<tag>
,将本地构建的镜像上传到仓库
其中your_repository
是您在阿里云上创建的 Docker 仓库的名称。
三、在阿里云服务器上部署 Docker
docker login --username=<镜像仓库登录名> registry.cn-<个人版实例所在的地域>.aliyuncs.com
从 Docker 仓库中拉取您上传的镜像
docker pull registry.cn-<个人版实例所在的地域>.aliyuncs.com/<your_repository>/<your_image_name>:<tag>
在阿里云服务器上运行容器
docker run --name <container name> -p 81:80 -p 8081:8080 -d registry.cn-<个人版实例所在的地域>.aliyuncs.com/<your_repository>/<your_image_name>:<tag>
,-p
参数指定容器的端口映射,将容器的80端口映射到主机的81端口。
访问部署的 Python 项目,在浏览器中访问阿里云服务器的公网 IP 地址或域名,即可访问部署的 Python 项目。