一、查看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…
公众号:微信搜【小儿来一壶枸杞酒泡茶】
小钟同学 | 文 【原创】【欢迎一起学习交流】| QQ:308711822