1. 程式人生 > >docker搭建python環境並打包映象然後使用映象啟動python程式和flask程式

docker搭建python環境並打包映象然後使用映象啟動python程式和flask程式

搭建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




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上不一樣