語言:python
1.實驗目的:
這次試驗是在docker容器中部署網路程式,初定為寫乙個簡單的web伺服器並部署到docker上,然後讓其他主機訪問。開發語言使用python語言。
2.實驗過程:
(1)搭建python開發環境
注意,實驗是要在docker容器中進行的,所以是在docker容器內安裝環境的。首先新開啟乙個ubuntu容器,並進入
然後輸入以下命令安裝python3.6
sudo apt-get update
sudo apt-get install software-properties
-common
sudo add-apt
-repository ppa:jonathonf/python-
3.6
sudo apt-get update
sudo apt-get install python3.6
cd /usr/bin
rm python
ln -s python3.6m python
進一步檢查是否安裝成功:
(2) 在linux環境下,使用python3.6寫乙個web簡單伺服器
新建乙個資料夾,把相應檔案放入:
然後新建乙個.html檔案和.py檔案,分別輸入以下**:
#空語句什麼都不做,保證結構完整性
pass
#設計basehttprequesthandler子類requesthandler
#重寫basehttprequesthandler類裡的方法
defsend_content
(self, page, status = 200):
self.send_response(status)
self.send_header("content-type", "text/html")
self.send_header("content-length", str(len(page)))
self.end_headers()
self.wfile.write(bytes(page, encoding = 'utf-8'))
defdo_get
(self):
#這裡要處理兩個異常,乙個是讀入路徑時可能出現的異常,
#乙個是讀入路徑後若不是檔案,要作為異常處理
try:
#os.getcwd()獲取當前工作目錄,self.path是handler得到的路徑
full_path = os.getcwd() + self.path
# 如果路徑不存在
ifnot os.path.exists(full_path):
#觸發異常
raise serverexception("'' not found".format(self.path))
#如果該路徑是乙個檔案
elif os.path.isfile(full_path):
self.handle_file(full_path)
#如果該路徑不是乙個檔案
else:
#觸發異常
raise serverexception("unknown object ''".format(self.path))
except exception as msg:
self.handle_error(msg)
defhandle_file
(self, full_path):
try:
#讀取檔案
with open(full_path, 'r') as file:
content = file.read()
self.send_content(content,200)
except ioerror as msg:
#處理檔案時出錯
msg = "'' cannot be read: ".format(self.path, msg)
self.handle_error(msg)
error_page = """\
"""#這個地方不是注釋,而是一段字串
defhandle_error
(self, msg):
#錯誤介面文字
content = self.error_page.format(path= self.path,msg= msg)
self.send_content(content, 404)
if __name__ == '__main__':
httpaddress = ('', 8030)#ip位址省略代表本機
(3)測試:
輸入python webdemo.py 執行該伺服器,之後程式處於等待使用者訪問階段。
在本虛擬機器上另開乙個終端,由於這個docker容器是採用的橋接模式,因此,本虛擬機器和docker容器之間是可以互通的。利用curl命令進行訪問。容器ip為172.17.0.2
訪問成功得到結果。
同時伺服器端也有響應:
開啟瀏覽器訪問也是可以的:
docker在獨立的容器中部署wordpress
yum install docker系統會自動安裝docker ce vi etc docker daemon.json 若檔案不存在則建立daemon.json 新增或修改以下字段 docker search mysql 從映象倉庫搜尋mysql映象 docker pull mysql 5.7.4...
在Docker容器中部署Django的時區問題
目錄 現在容器化部署已經非常成熟了,我們很多服務都會使用容器部署,更新恢復都非常方便,但是有乙個問題比較麻煩,就是時區處理,通常情況下,都採用注入 tz 環境變數來解決,但是實際這種處理方式在 django 中卻是不行的。在www.cppcns.comdjango的配置檔案 settings.py ...
在docker中部署gitlab
docker pull gitlab gitlab ce 12.5.4 ce.0 2.在docker建立容器,讓gitlab跑起來 docker run d publish 8443 443 publish 10080 80 publish 1022 22 name gitlab restart a...