暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Fastapi框架-(15)win10+Docker Desktop +pychram 连接Docker进行本地环境搭建实践

小儿来一壶枸杞酒泡茶 2021-08-04
483

之前的实践,主要是基于虚拟机的基础上进行的,为了方便自己的开发,我还是需要再win10安装一个docker这样也方便后续其他的服务管理。


其实这样安装起来,你可以把docker当做一个各自服务的的管家一样了!!!哈哈



一、查看win10是否已经开启了虚拟化:

二、如果没有开启则需要开启 并重启:

Hyper-V的启用如下:

步骤1 - 控制面板 - 程序

步骤2 - 启用/关闭Windows功能

步骤3 - 勾选Hyper-V选项 - 确定 - 重新启动

步骤4 docker-desktop官网下载安装:

下载地址 www.docker.com/products/do…

下载步骤:

1)安装后遇到的问题:

2)解决方案:

3)重新再启动docker:

4)验证docker

5)尝试拉一个redis的服务镜像(命令)

6)查看桌面本地的镜像:

7)运行一个redis容器(非命令)

8)查看容器运行的相关的日志:

9)尝试使用客户端连接:

10)验证连接:

步骤5 配置镜像加速:

可以用于加上的一些镜像云:

"https://xxx.mirror.aliyuncs.com",
"https://registry.docker-cn.com",
"https://docker.mirrors.ustc.edu.cn",
"https://reg-mirror.qiniu.com",
"https://dockerhub.azk8s.cn",
"https://mirror.ccs.tencentyun.com"
复制代码

通过上面的一系列的步骤后,就可以使用docker安装各自服务了!感觉真的可以为所欲为的感觉!哈哈!以后安装什么服务,也方便很多了!不需要搞那么多的配置!!!

三、开始配置我们的pycharm (注意需要专业版哟)

PS:我的pycharm版本是18版滴

步骤1 开启docker服务端口:

可以的话最好也重启一下

步骤2 配置新的解析器连接docker服务:

下面出现了一个docker的图标

步骤3 选择docker,开始选服务上的镜像:

拉一个python环境的镜像,后续所有的人可以都基于这个镜像的基础进行开发,就可以保持环境的一致性了!

拉一个python环境的镜像,后续所有的人可以都基于这个镜像的基础进行开发,就可以保持环境的一致性了!甚至于我们的python直接运行到linux也没问题,我拉一个linux镜像,里面配置或安装我们的python环境即可!!!

比如我这里,可以搭建一个linxu环境的容器来跑我们的fastapi项目,那么当然我们的就系构建一个镜像咯!

dockerfile文件内容:

PS:Dockerfile文件内容参考来源:blog.csdn.net/jclian91/ar…

详细内容:

FROM centos:7.2.1511

# author label
LABEL maintainer="xiaozhong"

# install related packages
ENV ENVIRONMENT DOCKER_PROD
RUN cd && ln -sf usr/share/zoneinfo/Asia/Shanghai etc/localtime \
&& yum makecache \
&& yum install -y wget aclocal automake autoconf make gcc gcc-c++ python-devel mysql-devel bzip2 libffi-devel epel-release \
&& yum clean all

# install python 3.7.0
RUN wget https://npm.taobao.org/mirrors/python/3.7.0/Python-3.7.0.tar.xz \
&& tar -xvf Python-3.7.0.tar.xz -C usr/local/ \
&& rm -rf Python-3.7.0.tar.xz \
&& cd usr/local/Python-3.7.0 \
&& ./configure && make && make install

# install related packages
RUN yum install -y python-pip \
&& yum install -y python-setuptools \
&& mkdir -m 755 -p etc/supervisor/conf.d \
&& yum install -y supervisor \
&& pip3 install --upgrade pip -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com \
&& pip3 install setuptools==33.1.1 -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com \
&& pip3 install --no-cache-dir --default-timeout=100 -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple\
&& yum clean all

# expost port
EXPOSE 15731
复制代码

开始构建一个linux+py3的镜像:

然后等待构建吧!

出现错误:

修改,需要复制我们的文件到里面进行安装:

新增:COPY requirements.txt ./

新的内容:

FROM centos:7.2.1511

# author label
LABEL maintainer="xiaozhong"

# install related packages
ENV ENVIRONMENT DOCKER_PROD
RUN cd && ln -sf usr/share/zoneinfo/Asia/Shanghai etc/localtime \
&& yum makecache \
&& yum install -y wget aclocal automake autoconf make gcc gcc-c++ python-devel mysql-devel bzip2 libffi-devel epel-release \
&& yum clean all

# install python 3.7.0
RUN wget https://npm.taobao.org/mirrors/python/3.7.0/Python-3.7.0.tar.xz \
&& tar -xvf Python-3.7.0.tar.xz -C usr/local/ \
&& rm -rf Python-3.7.0.tar.xz \
&& cd usr/local/Python-3.7.0 \
&& ./configure && make && make install

COPY requirements.txt ./

# install related packages
RUN yum install -y python-pip \
&& yum install -y python-setuptools \
&& mkdir -m 755 -p etc/supervisor/conf.d \
&& yum install -y supervisor \
&& pip3 install --upgrade pip -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com \
&& pip3 install setuptools==33.1.1 -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com \
&& pip3 install --no-cache-dir --default-timeout=100 -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple\
&& yum clean all

# expost port
EXPOSE 15731
复制代码

但是还是构建的过程还是会有错:

提示:

后来干脆不从豆瓣下载了:

去了之后出现新的一个包安装不了的

这个包很诡异什么镜像下都安装不了:

psycopg2==2.9.1
复制代码

去除上面这个之后就OK了!

步骤4 查看生成新的镜像,开始回到我们的解释器选择界面:

然后等待连接:

貌似这地方一直连接不上!!后来发现原来,docker还需要再下载其他的镜像:

镜像文件大就算了!还连不上!!!删除一下生成新的镜像

更换新的小的镜像验证测试

新的镜像:

FROM tiangolo/uvicorn-gunicorn-fastapi:python3.7
# author label
LABEL maintainer="xiaozhong"

COPY requirements.txt ./

RUN pip3 install -r requirements.txt \
&& yum clean all

# expost port
EXPOSE 15731
复制代码

然后再重新的构建!

忘记了!yum命令没有去处!需要去除一下!再进行重构后!

启动一个容器尝试进去测试验证看看环境:

提示:

又忘记了!这个基础镜像包含了启动我们的服务了!我们现在只是需要一个python环境!这个!!!!尴尬了!

再来一次!!

最新的镜像文件:

##############################################
# 基于centos7构建python3运行环境
# 构建命令: 在Dockerfile文件目录下执行 docker build -t python:37 .
# 容器启动命令: docker run -itd --name python --restart always --privileged=true -v root/dockers/python:/root/python -v root/dockers/python/cron:/var/spool/cron python:37 usr/sbin/init
# 进入容器:docker exec -it python bin/bash
##############################################
FROM centos:7.6.1810
MAINTAINER mioshu # 指定作者信息
RUN set -ex \
# 预安装所需组件
&& yum install -y wget tar libffi-devel zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gcc make initscripts \
&& wget https://www.python.org/ftp/python/3.7.0/Python-3.7.0.tgz \
&& tar -zxvf Python-3.7.0.tgz \
&& cd Python-3.7.0 \
&& ./configure prefix=/usr/local/python3 \
&& make \
&& make install \
&& make clean \
&& rm -rf Python-3.7.0* \
&& yum install -y epel-release \
&& yum install -y python-pip

COPY requirements.txt ./

# 设置默认为python3
RUN set -ex \
# 备份旧版本python
&& mv usr/bin/python usr/bin/python27 \
&& mv usr/bin/pip usr/bin/pip27 \
# 配置默认为python3
&& ln -s usr/local/python3/bin/python3.7 usr/bin/python \
&& ln -s usr/local/python3/bin/pip3 usr/bin/pip
# 修复因修改python版本导致yum失效问题
RUN set -ex \
&& sed -i "s#/usr/bin/python#/usr/bin/python2.7#" usr/bin/yum \
&& sed -i "s#/usr/bin/python#/usr/bin/python2.7#" /usr/libexec/urlgrabber-ext-down \
&& yum install -y deltarpm
# 基础环境配置
RUN set -ex \
# 修改系统时区为东八区
&& rm -rf /etc/localtime \
&& ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime \
&& yum install -y vim \
# 安装定时任务组件
&& yum -y install cronie
# 支持中文
RUN yum install kde-l10n-Chinese -y
RUN localedef -c -f UTF-8 -i zh_CN zh_CN.utf8
# 更新pip版本
RUN pip install --upgrade pip

RUN yum install -y python-pip \
&& yum install -y python-setuptools \
&& mkdir -m 755 -p /etc/supervisor/conf.d \
&& yum install -y supervisor \
&& pip install --upgrade pip -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com \
&& pip install setuptools==33.1.1 -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com \
&& pip install -r requirements.txt \
&& yum clean all

ENV LC_ALL zh_CN.UTF-8
复制代码

然后执行构建:

运行一个实例验证一下当前的python环境:

再连接我们的pycharm试一试

这就奇葩了 一直还是:

该用另一种方式链接:

步骤5 卡脖子了!更换新的pycharm版本

使用最新2021.2的版本再次的进行连接:

有新的工具镜像生成:

好家伙终于可以了!!!确定后等待后台进程处理!!

步骤6 运行示例

验证访问:访问失败!!!!

排查问题:(1)查看容器日志:

当我们的右键运行我们的本地项目的时候,服务启动的是容器内的端口号:

所以我们的可以得到信息:http://127.0.0.1:8569/ 这个是容器内的端口号,不是我们的本地,因为我们的本地还没也和容器的这个8569进行端口的映射,所以是访问不到服务滴!

通过我们的进入到容器里面访问地址可以验证:

步骤7 配置运行镜像容器

(1)修改配置信息

(2)找到容器运行配置选项

添加成功后查看最终启动man.py的时候回执行的命令

(3)注意修改我们的启动程序HOTS, 修为为0.0.0.0 如果这里你使用127.0.0.1表示的只允许容器内的进行访问了!!!所以不行滴哟!

步骤8 再次启动验证

再次访问接口:

恭喜你可以了!!!哇咔咔!

步骤7 使用镜像的方式运行

配置运行容器相关信息(这个暂时有问题,后续补充)

总结:

以上仅仅是个人结合自己的实际需求,做学习的实践笔记!如有笔误!欢迎批评指正!感谢各位大佬!

结尾

END

简书:www.jianshu.com/u/d6960089b…

掘金:juejin.cn/user/296393…

公众号:微信搜【小儿来一壶枸杞酒泡茶】

小钟同学 | 文 【原创】【欢迎一起学习交流】| QQ:308711822

文章转载自小儿来一壶枸杞酒泡茶,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论