一、需要一个flask项目
这里采用pycharm新增一个最小的flask项目
启动项目的入口是app.py
启动后,访问控制台地址即可
注意:当项目中的依赖包太多的时候,需要批量安装依赖,我们可以一次性把依赖的包名导出到一个txt
1、使用自带的方法(不建议,虚拟环境会导出全部的依赖)
在当前项目根目录下执行命令pip freeze > requirements.txt
即可生成一个文件requirements,迁移环境可以通过pip install -r requirements.txt安装全部的依赖
2、使用pipreqs(只会导出第三方库)
安装一个python三方库,pip install pipreqs
在项目根目录的控制台输入:pipreqs ./ –encoding=utf8
自动在根目录生成一个文件requirements.txt,迁移环境可以通过pip install -r requirements.txt安装全部的依赖
二、安装docker
1、如果安装了宝塔linux面板,直接在应用商店安装即可
安装宝塔:
yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh && sh install.sh ed8484bec
安装完成后可以看到username和password ,通过默认的8888端口访问,外网ip是服务器ip
验证方式:打开控制台:docker –version
2、手动安装docker(用的腾讯云服务器)
2.1.卸载旧版本
yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
2.2、yum install -y yum-utils 安装一些工具包,可能使用
2.3、yum install docker-ce docker-ce-cli containerd.io 安装最新的docker社区
2.4、启动docker:systemctl start docker
2.5、验证安装成功:docker –version
2.6、修改下载源为国内源
vim /etc/docker/daemon.json 打开是个空文件,在里面添加腾讯或者阿里等源(可添加多个),这里用腾讯的源
{
“registry-mirrors” : [
“https://mirror.ccs.tencentyun.com”
]
}
———————————————-
i : 进入编辑状态
esc:退出编辑状态
冒号:输入wq 保存并退出
2.7、重启docker 使配置生效
systemctl daemon-reload
systemctl restart docker.service
2.8、查看配置是否生效
docker info
拉到最后看配置是否是新增的国内源
3、安装镜像和启动项目
3.1、查看全部镜像:docker images
3.2、查看运行中的容器:docker ps
3.3、查看运行过的容器:docker ps -a
3.4、删除镜像:docker rmi 镜像名
3.5、删除容器:docker rm 容器id
3.6、运行一个镜像:docker run 镜像名
3.7、下载一个镜像:
docker pull mysql:5.7
尝试拉取一个镜像,运行一个容器
3.6、运行一个hello word(docker 用于测试的项目)
docker run hello-word (不存在这个项目,默认会去下载)
删除这个镜像:
先删除容器:docker ps -a 查看容器id
删除成功后,开始flask项目正式配置!
4、flask项目的导入(以宝塔面板为例)
4.1上传flask项目文件
我是上传到根目录,方便找,
4.2、新增镜像文件
进入项目文件夹里面,新增一个文件Dockerfile,docker的默认启动文件
vim Dockerfile
FROM python:3.7 #指定下载python版本
WORKDIR ./flask_demo #工作路径
ADD . . #第一个参数“.”代表Dockerfile所在的目录,即python项目d下所有的目录(不包括文件夹名字本身自身)。第二个参数“.”代表镜像的工作目录
RUN pip install -r requirements.txt #安装依赖文件
EXPOSE 5000 # 将我们这个运行的容器的 5000 端口向外暴漏
CMD ["python", "./app.py"] #命令行启动项目
在当前目录下创建镜像:
docker build -t flask_demo .
-t 参数指定了最终镜像的名字为demo。注意,会看到 docker build 命令最后有一个 . 标识当前目录
查看是否创建了镜像
docker images
4.3、运行docker容器
将容器内的端口映射到容器外,容器内的端口不映射,当服务器的5000端口被访问的时候,不会去找对应的容器端口
4.4、运行后,通过浏览器访问:ip:5000
docker run -d -p 8080:5000 flask_demo
停止项目 :
docker stop 容器id
4.5、关于访问不到的问题
检查是否云服务器将5000端口开放了
检查项目配置,从头到尾