docker搭建python环境并打包镜像然后使用镜像启动python程序和flask程序
搭建python环境双击打开docker然后下载镜像:docker pull python:3.5查看是否成功:docker run-v /Users/zjl/python3i/py3image:/py3image-w /py3image python:3.5 python a.py-v参数,冒号前为宿主机目录,必须为绝对路径
·
搭建python环境
双击打开docker
然后下载镜像:
docker pull ubuntu
进入ubuntu容器交互系统:
docker run -i -t ubuntu /bin/bash
-t 是启动终端
-i是允许进行交互
这时候敲python命令会发现没有python
ubuntu下安装python:
apt-get update
apt-get install python3
#安装好python用输入python3试一下
#安装pip
apt-get install python3-pip(这个命令好像会同时安装python2.7)
#安装好pip用输入pip试一下
apt-get install python3-dev
apt-get install openssl
apt-get install libssl-dev
apt-get install libffi-dev
查看是否成功:
docker run -v /Users/zjl/python3i/py3image:/py3image -w /py3image ubuntu python3 a.py
-v参数,冒号前为宿主机目录,必须为绝对路径,冒号后为镜像内挂载的路径
-w参数,是指定为当前镜像工作目录
在本机/Users/zjl/python3i/py3image下创建一个a.py,执行
打包装了python的容器:
命令:docker commit <容器id> 新的镜像名
docker commit 1604777a778c docker/python3env
批量安装库:
命令:docker -v 宿主机目录:容器目录 -w 容器当前工作目录 镜像名 命令
docker run -v /Users/zjl/python3i/py3image:/py3image -w /py3image ubuntu pip3 install -r requirements.txt
-v参数,冒号前为宿主机目录,必须为绝对路径,冒号后为镜像内挂载的路径
-w参数,是指定为当前镜像工作目录
因为再启动镜像会到初始化的样子所以再打包一次容器,保留内容
docker commit 62d4eefe7e62 python3env
进入容器互动:
docker run -i -t -v /Users/zjl/python3i/py3image:/py3image -w /py3image python3env /bin/bash
敲python进入互动,import一个刚才安装的库
或者
新建一个a.py,在里面import几个刚装的库
再执行:
docker run -v /Users/zjl/python3i/py3image:/py3image -w /py3image python3env python a.py
没有错误就说明成功了
导出镜像:
命令:
docker save -o /Users/zjl/Desktop/aaa/python3env.tar python3env
-o参数,输出文件
需要导出路径喝文件名
需要导出的镜像名
导入镜像:
命令:
docker import /Users/zjl/Desktop/aaa/python3env.tar python3env:1.1
import导入,镜像文件路径和名称,创建镜像的名称和版本
容器和镜像的理解:
镜像是只读文件,感觉像是一个系统安装iOS文件
容器是用来运行镜像并对镜像进行读写的,像是ios安装后的系统,自己本身也能再打包成一个ios文件,容器关闭后不保存修改的数据,再次打开恢复到镜像最初的数据
docker容器内python执行flask程序:
修改flask的host=‘0.0.0.0’
命令:
docker run -p 5001:5000 -v /Users/zjl/Desktop/aaa/spider:/py3image -w /py3image python3env python runflask.py
-p 5001:5000,容器5000端口映射主机5001端口,冒号前是主机端口,冒号后是容器端口
flask程序启动了容器的5000端口,但是映射到了主机的5001端口,访问的IP为docker服务的IP
用docker容器内的python环境执行python程序时将里面连接数据库或者其它啥需要设置IP的都不要用127.0.0.1
windows10下我是从下官网docker再下载ubuntu镜像开始,并不是倒入mac下的镜像,但是奇怪为啥ip还是127.0.0.1,和mac上不一样
windows下启动flask:
不要忘记host='0.0.0.0'
docker run -p 5001:5000 -v D:\PycharmProjects\spider:/py3image -w /py3image python3env python3 runflask.py
windows10下我是从下官网docker再下载ubuntu镜像开始,并不是倒入mac下的镜像,但是奇怪为啥ip还是127.0.0.1,和mac上不一样
更多推荐
已为社区贡献3条内容
所有评论(0)