如何運用docker配合python開發

2021-08-03 09:01:26 字數 2785 閱讀 5479

由於開發乙個python程式時需要依賴大量的三方庫包,且python2和3本身就有互不相容的地方,我們往往需要乙個隔離的環境,來避免版本影響造成的bug。

傳統的做法大多數人可能會選擇virtualenv來隔離,但是它有很多明顯的缺點:

- 無法提供完全的隔離

- 如果不想在正式環境中使用,它就會造成差異

而隨著容器技術的日漸成熟和普及,docker無疑成為解決這個問題的最優解

本文將主要介紹docker和flask的配合開發

1.安裝docker(這裡不詳細介紹)
# 參考命令

sudo wget -qo- | sh

2.應用目錄結構
├──fanxiangce

_docker

├── dockerfile

├── readme.md

└─fanxiangce

├── manage.py

└── requirements

├── common.txt

3.編寫dockerfile(詳細命令解釋可以參考
######

######

######

######

######

######

######

######

######

####

#########

######

######

######

######

######

######

######

######

## set the base image to use to centos

from centos:7

# set the file maintainer

maintainer jasonwang,[email protected]

# set env varibles used in this dockerfile (add a unique prefix, such as dockyard)

# local directory with project source

env dockyard_src=fanxiangce

# directory in container for all project files

env dockyard_srchome=/opt

# directory in container for project source files

env dockyard_srcproj=/opt/fanxiangce

run yum -y install epel-release

run yum -y install python-pip

run yum clean all

copy $dockyard_src $dockyard_srcproj

workdir $dockyard_srcproj

run mkdir log

volume ['$dockyard_srcproj/log/']

# install python dependencies

run pip install --upgrade pip

run pip install -r $dockyard_srcproj/requirements/common.txt

# port to expose

expose 8000

# copy entrypoint script into the image

workdir $dockyard_srcproj

4. build映象
# 在dockerfile同級目錄下

sudo docker build -t jason/webdemo .

成功後顯示successfully,同時返回映象id,如圖:

5.檢視並啟動映象

注意,此處-p對映的埠(主機埠:容器埠),容器埠應與flask應用定義的埠一致

sudo docker run -it

--name webdemo -p 8000:8000 jason/webdemo /bin/bash

#### 6.在容器中啟動flask應用

python manage.py runserver -p 8000
啟動成功如下截圖:

7.在瀏覽器輸入127.0.0.1:8000即可訪問應用

8.後續

如果容器關閉後需要再次進入,可以用如下命令

# 檢視當前容器 

sudo docker ps -a

# 啟動容器

docker start webdemo

# 進入容器

docker attach webdemo

docker配合wordpress搭建個人部落格

環境 阿里雲vps伺服器 centos7.2 1 安裝docker 執行以下命令自動安裝,耐心等待 curl fssl sh 2 拉取映象 拉取 wordpress 映象 docker pull wordpress latest 拉取 mysql 映象 docker pull mysql lates...

HTML2Text運用配合效果切換

public function html2text byval strhtml dim objregexp,match,matches set objregexp new regexp objregexp.ignorecase true objregexp.global true 取閉合的 objr...

fusioncharts如何運用

fusioncharts是乙個很使用的網頁報表外掛程式,通過它可以滿足各種各樣的 需要而且樣式也肯酷。接下來就看看它是如何完成乙個圖表的 我用的是myeclipse所以就用的web專案做的,首先建立web專案。然後建立fusioncharts資料夾把壓縮包下js資料夾裡所有的檔案考過來。type是圖...