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 name
和Bind ports
中分別寫入容器名和端口映射關系,后點擊Run
即可發布容器。
在容器的log
一欄中即可看到運行日志:
若想在其它機器上訪問容器,記得在服務器的防火牆內放行端口。