天天看點

2021-01-22 使用 Docker 打包 Python 項目使用 Docker 打包 Python 項目

使用 Docker 打包 Python 項目

1. 擷取 Python 的鏡像檔案

項目的封裝可以建立在已有鏡像的基礎上,在 Ubuntu 中可通過

docker pull python:3.6.8-slim-stretch # 這裡選取了3.6版本           

擷取 Python 鏡像

2. 配置 Dockerfile 檔案

在 Python 項目的根目錄建立 Dockerfile 檔案,Dockerfile 名字必須是這個,否則報錯,在 Dockerfile 檔案中寫入下面内容:

FROM python:3.6.8-slim-stretch  

WORKDIR /usr/src/app

COPY requirements.txt ./
RUN pip install --no-cache-dir -r requirements.txt

COPY . .
ENTRYPOINT ["python"]
CMD ["./run.py"]
           

3. 建立鏡像

建立鏡像的指令為:

docker build -t python-project:1.0 .           

需要注意的是最後面的 “.” 不能省略 ,“.”代表目前目錄

4. 運作鏡像

運作鏡像的指令為:

docker run --rm -p 5000:5000 --name pyproject python-project:1.0
           

這行指令中的幾個參數的含義分别如下

  • –rm:表示關閉指令行視窗時,運作該鏡像的程序會同時關閉;
  • -p:用來設定端口映射,即把電腦主機的端口映射到 docker 容器中的端口,如何封裝的是一個 web 服務,那麼必須要設定端口映射;
  • –name:用來為運作的鏡像設定别名,友善後面的調用

此外,可能會經常用到的參數還有:

  • -e:為鏡像添加環境變量
  • -d:使 web 在背景持續運作

5. 常用指令總結

docker build -t pflask:1.0 .   建立鏡像

docker images | grep python    檢視鏡像

docker run --rm -p 5000:5000 pflask:1.0   運作鏡像

docker run --rm -p 5000:5000 -e env1=evn1 pflask:1.0  加入環境變量

docker run -d pflask:1.0   運作docker并守護程序

docker ps -a            檢視目前正在運作的所有鏡像

docker stop IMAGE_ID    根據 IMAGE_ID 停止鏡像程序

docker rm -f IMAGE_ID   根據 IMAGE_ID 删除鏡像程序

docker rmi IMAGE_ID     根據 IMAGE_ID 删除鏡像

docker logs -f tname    根據助記符檢視日志

ss -anp | grep 5000     從所有端口中過濾出 5000

curl -v "http://192.168.195.100:5000"   測試連接配接

cat hello.py     檢視檔案

a256sum hello.py   雜湊演算法

Dockerfile内容
	FROM python:3.6.8-slim-stretch
	WORKDIR /usr/src/app
	COPY requirements.txt ./
	RUN pip install --no-cache-dir -r requirements.txt
	COPY . .
	ENTRYPOINT ["python"]
	CMD ["/run.py"]           
2021-01-22 使用 Docker 打包 Python 項目使用 Docker 打包 Python 項目