本文小编为大家详细介绍“怎么运用docker配置python开发环境”,内容详细,步骤清晰,细节处理妥当,希望这篇“怎么运用docker配置python开发环境”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。
步骤:
1.安装docker(这里不详细介绍)
# 参考命令
sudo wget -qo- https://get.docker.com/ | sh
2.应用目录结构
├──fanxiangce
_docker
├── dockerfile
├── readme.md
└─fanxiangce
└──app
├── manage.py
└── requirements
├── common.txt
3.编写dockerfile(详细命令解释可以参考)
##########################################################
# dockerfile to run a flask-based web application# based on an centos:7 image
##########################################################
# set the base image to use to centos
from centos:7
# set the file maintainer
maintainer jasonwang,wjs7740@163.com
# set env varibles used in this dockerfile (add a unique prefix, such as dockyard)
# local directory with project source
env dockyard_src=fanxiangce
# directory in container for all project files
env dockyard_srchome=/opt
# directory in container for project source files
env dockyard_srcproj=/opt/fanxiangce
# update the defualt application repository source list
run yum -y install epel-release
run yum -y install python-pip
run yum clean all
# copy application source code to srcdir
copy $dockyard_src $dockyard_srcproj
# create application subdirectories
workdir $dockyard_srcproj
run mkdir log
volume ['$dockyard_srcproj/log/']
# install python dependencies
run pip install --upgrade pip
run pip install -r $dockyard_srcproj/requirements/common.txt
# port to expose
expose 8000
# copy entrypoint script into the image
workdir $dockyard_srcproj
4. build镜像
# 在dockerfile同级目录下
sudo docker build -t jason/webdemo .
成功后显示successfully,同时返回镜像id,如图:

5.查看并启动镜像
注意,此处-p映射的端口(主机端口:容器端口),容器端口应与flask应用定义的端口一致
sudo docker images
sudo docker run -it --name webdemo -p 8000:8000 jason/webdemo /bin/bash
6.在容器中启动flask应用
python manage.py runserver -p 8000
启动成功如下截图:

7.在浏览器输入127.0.0.1:8000即可访问应用

8.后续
如果容器关闭后需要再次进入,可以用如下命令
# 查看当前容器
sudo docker ps -a
# 启动容器
docker start webdemo
# 进入容器
docker attach webdemo
读到这里,这篇“怎么运用docker配置python开发环境”文章已经介绍完毕,想要掌握这篇文章的知识点还需要大家自己动手实践使用过才能领会,如果想了解更多相关内容的文章,欢迎关注天达云行业资讯频道。