Docker容器化部署Python應(yīng)用過程解析
簡單應(yīng)用部署
一、目錄結(jié)構(gòu):
└── Pythonpro #目錄└── test.py #文件└── requirements.txt #文件└── Dockerfile #文件
二、編寫Dockerfile文件
# 基于鏡像基礎(chǔ)FROM python:3.6.4# 創(chuàng)建代碼文件夾工作目錄 /code RUN mkdir /code # 復(fù)制當(dāng)前代碼文件到容器中 /code COPY . /code # 安裝所需的包RUN pip install -r /code/requirements.txt -i https://pypi.douban.com/simple# 指定cmd的工作目錄 /codeWORKDIR /code#容器啟動時執(zhí)行的命令CMD ['python','test.py']
三、創(chuàng)建容器鏡像
docker bulid -t test .
四、運(yùn)行容器
docker run -it --name test --restart always --privileged=true python-test--name:指定容器的名字為python-test,test是剛剛構(gòu)建的鏡像。
--restart:always 容器退出時總是重啟。
--privileged=true:執(zhí)行容器內(nèi)文件需要的權(quán)限。
Django應(yīng)用容器化
一、目錄結(jié)構(gòu),我這里假設(shè)這個目錄存在于/home/Pythonpro。
└── Pythonpro #目錄└── manage.py #文件└── 主項(xiàng)目 #目錄└── apps #目錄└── requirements.txt #文件└── Dockerfile #文件└── run.sh #文件
run.sh腳本
python /code/manage.py runserver 0.0.0.0:8000
二、編寫Dockerfile文件
FROM python:3.6.4RUN mkdir /code &&apt-get update &&apt-get -y install freetds-dev &&apt-get -y install unixodbc-devCOPY . /code RUN pip install -r /code/requirements.txt -i https://pypi.douban.com/simpleWORKDIR /codeCMD ['/bin/bash','run.sh']
三、構(gòu)建鏡像
docker bulid -t webtest .
四、運(yùn)行容器
docker run -it -p 6500:8000 -v /home/Pythonpro:/code --name web --restart always --privileged=true webtest
-p:把容器的8000端口映射到宿主機(jī)6500
-v:主機(jī)的目錄/home/Pythonprot映射到容器的目錄/code
--name:指定容器的名字為web,webtest剛剛構(gòu)建的鏡像
--restart:always 容器退出時總是重啟
--privileged=true:執(zhí)行容器內(nèi)文件需要的權(quán)限
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持好吧啦網(wǎng)。
相關(guān)文章:
1. 基于Go和PHP語言實(shí)現(xiàn)爬樓梯算法的思路詳解2. IntelliJ IDEA導(dǎo)入jar包的方法3. JVM之class文件結(jié)構(gòu)4. Android打包篇:Android Studio將代碼打包成jar包教程5. Xml簡介_動力節(jié)點(diǎn)Java學(xué)院整理6. ASP腳本組件實(shí)現(xiàn)服務(wù)器重啟7. asp知識整理筆記4(問答模式)8. django生產(chǎn)環(huán)境搭建(uWSGI+django+nginx+python+MySQL)9. Python如何根據(jù)時間序列數(shù)據(jù)作圖10. python對批量WAV音頻進(jìn)行等長分割的方法實(shí)現(xiàn)
