自定義docker使用說明
一步到位制定你所需要的項目docker鏡像节吮,制作完成跑起來即可訪問應(yīng)用抽高。
注意
:請將你的項目放置在命令運(yùn)行的目錄,Dockerfile中會有COPY custom /app/project/custom/
命令將你的項目拷貝到鏡像中透绩。
注意
:requirement 和 requirement2 根據(jù)你自己的項目來翘骂,其中requirement2是安裝不上需要強(qiáng)制升級的包。
注意
:dockerfile中暴露端口根據(jù)自己需要增加帚豪。
提示
:失敗一次不可怕碳竟,可怕的是失敗了就不敢嘗試第二次。
命令提示
創(chuàng)建鏡像命令:docker build . -t docker_name
啟動鏡像為容器:docker run -idt --name container_name -p 80:80 -p 8000:8000 docker_name
查看容器情況:docker ps
進(jìn)入容器:docker exec -it container_name bash
保存鏡像到本地:docker save -o custom.tar docker_name # -o:指定保存的鏡像的名字
從本地導(dǎo)入鏡像:docker load --input custom.tar 或 docker load < custom.tar
刪除因失敗帶來的none/奇怪名字的鏡像/容器:
刪除容器:docker rm $(docker ps -a | grep "Exited" | awk '{print $1 }')
刪除鏡像:docker rmi $(docker images | grep "none" | awk '{print $3}')
-
Dockerfile
如果有問題build時有問題狸臣,嘗試修改對應(yīng)命令后重新跑瞭亮。
docker build . -t name
命令目錄不要放太多無用文件,創(chuàng)建時docker會講這個目錄下所有文件發(fā)送至docker服務(wù)器固棚。根據(jù)需求安裝程序/依賴包
替換requirements.txt和requirements2.txt
之所以用兩個依賴文件是因為有依賴包安裝會報錯统翩,這里需要強(qiáng)制升級才行。
-
nginx
確保nginx的配置轉(zhuǎn)發(fā)和靜態(tài)路徑?jīng)]有問題此洲,保證nginx能夠啟動厂汗。
根據(jù)項目需求修改轉(zhuǎn)發(fā)路徑/靜態(tài)文件
-
gunicorn
gunicorn配置文件時py結(jié)尾,這個是因為gunicorn報錯呜师。在這個版本中是否會報錯娶桦,暫時還沒有測試。
pid/log這些路徑在dockerfile中定義,如果有修改要兩邊對上衷畦。
-
supervisor
supervisor主要時用來接管nginx和gunicorn的進(jìn)程栗涂,/startup.sh中啟動內(nèi)容就是啟動supervisor。
如果你不需要nginx或者gunicorn祈争,記得在配置文件中把對應(yīng)的啟動配置刪掉斤程。
如果
supervisorctl
需要用戶名密碼,在配置文件[inet_http_server]
有寫用戶名和密碼(123/123)菩混。程序配置信息注意事項
-
startup
內(nèi)容是啟動supervisor忿墅,這一步很重要,如果是windows環(huán)境dockerfile中的轉(zhuǎn)換命令很重要沮峡,否則build失敗日志種會出現(xiàn)unix的錯誤疚脐。
查看docker啟動日志:
docker logs --tail 20 docker_name