在docker上部署fastapi的相关操作
docker笔记
删除同名、旧的镜像:
docker rmi -f <镜像名>
加载镜像的压缩文件tar:
docker load -i <tar 文件路径>
查看一下镜像是否加载成功:
docker images
若成功则运行:
docker run -d -p 4399:4399 <镜像名news-extract-app>
在开发完毕后,导出镜像,并在服务器centos加载镜像,运行至容器:
可以手动输入以下内容:
也可以配置docker-compose.yml文件:
version: '3'
services:my_service:container_name: my_custom_name # 指定容器名称image: my_image:latestports:- "8080:80"restart: always
docker中的删除:
删除容器:
docker rm -f <容器名、容器ID>
删除镜像:
docker rmi -f <镜像名、镜像ID>
遇到的问题:
1、无法爬取
向deepseek提问:
我使用以下的方法爬取湖北省人社厅网站的新闻内容,在window笔记本上可以成功爬取,但是在部署在centos服务器上面以后,该方法就失效了,请问是什么原因?
def get_html(url):"""爬取网站全部内容:param url::return: 网页全文"""import sslssl._create_default_https_context = ssl._create_unverified_contextuser_agent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36"cookie = "_trs_uv=mdd9cdiy_3009_1wb9; dataHide2=dbaf775e-22e6-4f5e-9360-df420cd038ff; Hm_lvt_e3087ee394f1febddf04f9d5c3037764=1753111556; HMACCOUNT=620DBE542AFF237B; _trs_gv=g_mdd9cdiy_3009_1wb9; _trs_ua_s_1=mdeldg06_3009_djho; Hm_lpvt_e3087ee394f1febddf04f9d5c3037764=1753192231"headers = {'User-Agent': user_agent}request = Request(url, headers=headers, method='GET')response = urllib.request.urlopen(request)contents = response.read()soup = BeautifulSoup(contents, "html5lib")return soup
deepseek解决:
项目部署到本地docker
创建fastapi项目
此处参考:博客
目录结构
% tree
.
├── Dockerfile
├── app
│ └── main.py
└── requirements.txt
构建项目
docker build -t news_extract_app .
运行
docker run -d --name news_extract -p 4399:4399 news_extract_app
–name news_extract 指定容器运行后的名字
查看运行状态
浏览器访问以下试试
从开发环境导出
我们可以使用docker save命令将镜像保存到指定的文件中,保存的文件是一个.tar格式的压缩文件。
# 导出到tar
docker save -o news-extract-app.tar news_extract_app
查看docker容器
docker ps
删除容器
docker rm -f news-extract
查看镜像
docker images
删除镜像
docker rmi -f news-extract-app
将压缩包导入到生产环境
xftp
解压压缩包,并加载为镜像文件
# 导入到生产环境的docker
docker load -i news-extract-app.tar
启动镜像
docker-compose up -d
查看容器运行状况