在部署自己项目时,开始时一头雾水。如果直接放在服务器上跑,既麻烦又不稳定。后来看到有写采用docker进行项目部署,前后折腾了一天,总算部署上去了,分享出来让大家少走点弯路。
整体的流程大概是这样的:
首先,准备环境,需要在本地部署docker,在下面网站进行下载即可,直接next就可以。
http://mirrors.aliyun.com/docker-toolbox/windows/docker-toolbox/
安装完后,编写自己的项目文件app.py,以及Dockerfile。
在本项目目录下构建镜像:
docker build -t 'test' .
通过docker images进行查看。当然前提是本地安装了docker,安装docker需要安装好git。具体的安装流程详见:
windows下安装docker详细步骤
Windows系统Git安装教程(详解Git安装过程)
docker-desktop下载地址
我用的是windows系统,非常不幸,前前后后折腾了大半天没搞定,只能曲线救国了。
这里,我采用的方法是在服务器上生成镜像文件,然后push到dockerhub私有仓库中,然后从私有仓库pull回服务器。
然后将镜像传送至云仓库。这里可以选择阿里云(腾讯云),我这里选的是dockerhub,主要是免费。而且dockerhub还有私有仓库。
在此之前,需要再dockerhub上创建一个私有仓库 比如 parhat/appnews (parhat用户名 appnews仓库名)
#登录docker,注意username与password要加引号
docker login --username username --password password
#tag后面的参数 appnews 为image名称,最后的参数 parhat/appnews为仓库名
docker tag appnews parhat/appnews
#推送到parhat/appnews仓库
docker push parhat/appnews
在服务器上将镜像拉取下来,
#step1 登录docker,前面已经登录,省略
#step2 pull回来,其实在dockerhub中可以直接copy pull的内容
docker pull <host>/<project>/<repo>:<tag>
例如:docker pull dockerhub.xx.net/database/sfe:latest
采用docker images查看是否pull下来,然后进行结果运行
#这个开通的端口号8501一定不能错,sfe是我取的name,272是image对应的id前三位
docker run -itd -p 28080:8501 --name sfe 272
使用docker ps -a查看容器情况是否完全。
此时就可以打开你所部署的项目网址 服务器公网ip:28080
到这里为止,基本就完成了项目部署。根据不同的ip映射,可以部署多个项目,只要硬件配置ok就行。
本篇参考文章:
Docker部署Flask应用的实现步骤
Python3.6 使用 Docker 快速部署 Django2.0 项目到阿里云服务器上
基于阿里服务器搭建宝塔面板
宝塔面板搭建WordPress网站新手教程
阿里云服务器怎么搭建多个网站?