專案完成後需要打包成映象然後發布,因為映象裡包含了配置檔案及所需要的包。製作映象的三種辦法:
目錄
一、如果專案較小,且所需依賴不是很多,直接將專案檔案上傳至容器內,並安裝所有程式執行需要的包。最後儲存映象。
二、在基礎映象上安裝所有程式執行需要的包,最後儲存映象。(專案**不需要放進映象)
1、載入儲存好的本地映象 或 拉取映象:
2、從宿主機進入要執行的指令碼(test.py)所在目錄:
3、在宿主機執行python檔案(執行容器)
3.1 如果啟動的是服務程式,需要指定埠對映,埠對映通過-p和-p引數來實現。
4、結果
5、這種方式會產生容器變化
三、編寫dockerfile等
1、怎樣將本地檔案上傳到docker容器?
執行映象,開啟新的命令列,檢視container id,docker ps -a
查詢容器長id
docker inspect -f '}' tomcat-container-id
拷貝本地檔案到容器docker cp 本地路徑 容器長id:容器路徑
注意:
1、docker run -it 乙個啟動容器,然後另起乙個視窗連線伺服器檢視容器id、查詢長id,進行複製。複製後在第乙個視窗目錄下 或者 利用sudo docker attach [container id] 進入該容器,檢視是否複製成功。(這樣做目的是為了保持容器status為up)
2、每次docker run -it 其實都是新建了乙個容器(相應的容器id都不一樣)
進入專案**目錄下,以掛載的方式執行python**
docker load -i comments_classification.tar
docker pull python:3.5 # [repository:tag]
#test.py檔案
#!/usr/bin/python
import os
print(os.getcwd()) #獲取當前目錄
print('-------------start--------------------')
print('this is a test file')
print('----------------end---------------')
docker run -v /home/bx_admin/jenkins_work/test:/usr/src/python -w /usr/src/python python:3.5 python test.py
命令說明:3.1.1 -p指定要對映的埠,乙個指定埠上只可以繫結乙個容器;支援的格式如下:①ip:hostport:containerport
:指定ip、指定宿主機port、指定容器port
②ip::containerport
:指定ip、未指定宿主機port(隨機)、指定容器port
注:會將容器的ip127.0.0.1和4000埠,隨機對映到宿主機的乙個埠上。
③hostport:containerport
:未指定ip、指定宿主機port、指定容器port
注:上邊的操作缺省會繫結本地所有介面上的所有位址。
檢視對映埠配置:
本節參考:
執行test.py檔案後,可以看到當前目錄是/usr/src/python,可以看出我們的指令碼輸出的是docker容器中的目錄,而不是我們宿主機的目錄 。
再看直接使用伺服器python直接該檔案的列印,當前目錄是home/bx_admin/jenkins_work
先看執行前的容器 docker ps -a ,當前一共只有兩個容器
docker執行python檔案後(相當於新建了乙個容器)
注意:即使檔案執行失敗了,但是新容器還是新生成了
刪除容器:docker rm -v a7505a43e238
參考:centos 7上使用docker執行python指令碼檔案
python專案打包成docker映象並發布
python專案打包成docker映象並發布執行
docker製作python執行環境基礎映象的方法步驟
python 專案製作docker映象
用Docker執行python程式示例
這是我的測試檔案,很簡單,訪問了宿主機的資料庫 1 import pymysql 23 host 127.0.0.1 4 host 172.17.0.1 docker0 的位址,為了訪問宿主機服務 56 db pymysql.connect host,root root cpat 7 cursor ...
Docker打包並執行python專案
整體分為三步,首先配置dockerfile檔案,其次編譯dockerfile檔案,生成docker映象,最後執行。1.配置dockerfile 檔案 kafkapro為專案根目錄,將其打包成docker映象。專案結構截圖如下。相關dockerfile配置 如下。注意 如下 是將kafkapro資料夾...
docker 使用docker執行Nginx映象
在docker映象倉庫查詢nginx映象 建立nginx web資料夾,存放nginx的資訊 mkdir p opt nginx web 拷貝配置檔案到nginx web資料夾下 docker run name tmp nginx container d nginx 1.17 docker cp t...