第一步:首先安裝docker,給乙個菜鳥教程的鏈結侵刪)
我的版本是17.03.2-ce
ubuntu直接按下面操作
第四步:建立乙個ftp容器,用於傳輸檔案,給個鏈結侵刪),當然你想用github直接拉也是可以的
附上python傳輸檔案**:
# coding: utf-8
from ftplib import ftp
import time
import tarfile
import os
from ftplib import ftp
def ftpconnect(host, username, password):
ftp = ftp()
#2001是我ftp容器的埠
ftp.connect(host, 2001)
ftp.login(username, password)
return ftp
def downloadfile(ftp, remotepath, localpath):
bufsize = 1024
fp = open(localpath, 'wb')
ftp.retrbinary('retr ' + remotepath, fp.write, bufsize)
ftp.set_debuglevel(0)
fp.close()
#從本地上傳檔案到ftp
def uploadfile(ftp, remotepath, localpath):
bufsize = 1024
fp = open(localpath, 'rb')
ftp.storbinary('stor ' + remotepath, fp, bufsize)
ftp.set_debuglevel(0)
fp.close()
if __name__ == "__main__":
ftp = ftpconnect("阿里雲伺服器公網ip", "ftp容器使用者名稱", "ftp容器密碼")
uploadfile(ftp, "nameko.rar", "f:\/nameko.rar")
ftp.quit()
第五步:
將寫好的flask工程打包上傳到雲伺服器,別忘了將requirements.txt檔案匯出,我是打包的.rar檔案
第六步:
建立乙個資料夾nameko
mkdir nameko
將剛才的rar檔案先用cp命令拷貝到nameko 檔案下,使用unrar命令解壓檔案
第七步:
建立乙個dockerfile檔案
touch dockerfile
vim dockerfile
將下面內容寫入
第八步:建立乙個docker-compose.yml檔案,要安裝docker-compose,我的版本是1.7.1
touch docker-compose.yml
vim docker-compose.yml
將下面內容寫入檔案
version: '2'
services:
web:
build: .
ports:
- "80:5000"
volumes:
- /root/nameko:/code
不要使用tab鍵,要用空格鍵,建議使用80埠,也可以用其他埠,注意不要占用其他一些服務的埠
第九步:
在nameko資料夾下使用docker-compose up命令建立映象,它會直接建立好容器
要等待一段時間,如果成功會有提示,失敗也會有錯誤提示
第十步:
進入到容器
docker exec -it 剛建立的容器名 /bin/bash
rabbitmq-server
等它執行完,按ctrl+c退出
nameko run nameko.py的檔名(不需要.py)&
加上&後台執行
再ctrl+c退出
再按ctrl+p+q退出容器,這樣退出不會關閉容器
用瀏覽器訪問你的伺服器公網ip:埠,埠是剛才在docker-compose.yml檔案中設定的
如果成功就會看見你想看見的
注意的點:
阿里雲的埠是要在阿里雲的伺服器的安全組中設定
每次修改完**都要重啟容器,還要開啟rabbitmq和執行nameko,修改頁面不需要重啟容器
還有很多可以改進的地方,比如啟動容器自動執行rabbitmq和nameko
如有建議,請多指教!
Docker 部署 Flask 應用實踐
開啟docker 在專案目錄下編寫 dockerfile 檔案,以下是我專案中dockerfile檔案,並對每一行進行解讀 from python 3.6 專案的基礎映象為 python3.6 expose 8080 docker的指定出口埠為8080 run mkdir project name ...
成功 安裝docker部署flask專案
我在windows上開發,然後將專案部署到ubuntu上 docker安裝 檔案結構 from flask import flask if name main setup.py from setuptools import setup,find packages setup version 1.0....
使用gunicorn部署Flask
gunicorn是乙個python wsgi的web服務框架,只支援在unix系統上執行,於ruby的unicorn專案。gunicorn使用prefork master worker模型,能夠與各種wsgi web框架協作。gunicorn安裝非常簡單,使用命令pip install guncor...