Centos下打包python程序爲docker鏡像

(1)準備py程序test.py文件;

(2)拷貝程序到docker目錄

    將test.py文件(工程目錄)拷貝到linux系統,如工程名爲:microservice,將所有工程文件拷貝到linux下workspace文件夾下(注意:所有代碼文件放在microservice/package文件夾下,方便生成requirements.txt文件,microservice爲工程名稱),後面還需配置Dockerfile文件和requirements.txt即可生成鏡像;

(3)配置Dockerfile(無擴展名)

新建Dockerfile文件,內容如下:

#基於的基礎鏡像

FROM python:3.6

 

#microservice (工程代碼文件夾)文件夾添加到容器code文件夾

ADD ./microservice /code

 

# 設置code文件夾是工作目錄

WORKDIR /code

 

# 安裝支持,requirements由以下產生:跳轉到package的同級目錄執行以下命令:pip freeze > requirements.txt

# 自動生成的requirements往往很大,可以手動刪除一些不相關的

RUN pip install -r requirements.txt

 

#啓動時指定py_microservice_qxt20190521.py

CMD ["python", "/code/package/py_microservice_qxt20190521.py"]

(4)新建運行環境依賴文件requirements.txt

Cd跳轉到package同級目錄運行以下命令在當前目錄生成requirements.txt

文件:

pip freeze > requirements.txt

注意:自動生成的需要環境可能很大,可以手動刪除一些不需要的。

(5)創建鏡像

Cd 跳轉到microservice 目錄(Dockerfile文件的同級目錄)

執行命令:docker build -t microservice_img .

其中:microservice_img 爲創建的鏡像名稱,. 表示當前目錄(microservice)

(6)查看鏡像是否創建成功

執行命令:docker images

docker images -a

(7)在容器中運行鏡像

新建一個容器,如test,在新建test容器中運行microservice_img鏡像,代碼如下:

docker run -it -p 8899:8899 --name test microservice_img

-it:表示交互式終端的容器,非啓動後立刻結束的容器

-p 8899 :8899 :前面爲8899爲docker的端口,映射到Linux虛擬機的8899 端口

--name test:給容器取個名字,嫌麻煩可以省去

microservice_img:容器是用哪個鏡像啓動的(一個容器,必須依賴一個鏡像啓動)

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章