flask程序docker鏡像打包及容器發布


docker服務端開啟ca認證

具體操作方法可參見https://www.cnblogs.com/yamiya/p/12578567.html,需要注意的事docker.service文件內ExecStart屬性需改為以下內容:

ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock \
          --tlsverify --tlscacert=/etc/docker/ca.pem \
          --tlscert=/etc/docker/server-cert.pem \
          --tlskey=/etc/docker/server-key.pem \
          -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock

將服務器上的認證信息下載到本地,放到指定位置。

pycharm連接docker

在菜單打開Settings->Build->Docker,Engine API URL填入docker服務器的ip和端口,Certificates folder填寫本地認證信息所在目錄,點擊確認完成配置。

在pycharm的頁面中打開docker插件,連上服務器后即可看到已有鏡像和已發布的容器。

flask程序鏡像打包

  • 編寫Dockfile文件,內容可參考如下內容:
FROM python:3.7-slim
MAINTAINER zhangsan

# We copy just the requirements.txt first to leverage Docker cache
COPY ./requirements.txt /app/requirements.txt

WORKDIR /app

RUN pip install -i https://pypi.douban.com/simple/ -r requirements.txt

ADD . /app
EXPOSE 5000
CMD python manage.py runserver --host 0.0.0.0
  • 生成requirements.txt文件

    • pip3 install pipreqs
    • 根目錄下:pipreqs ./ --encoding=utf8 --force
  • 打開Dockfile的文件編輯,填寫image tag.

  • 打包:點擊Dockerfile內的綠色雙箭頭,選擇Build Image for Dockfile,待執行完成后即可在docker服務器中看到鏡像。

容器發布

在Dock插件內選定此前生成的進行,右鍵單擊選擇Create container,在彈出的對話框中的Container nameBind ports中分別寫入容器名和端口映射關系,后點擊Run即可發布容器。

在容器的log一欄中即可看到運行日志:

若想在其它機器上訪問容器,記得在服務器的防火牆內放行端口。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM