7天入門python全棧工程師03—玩溜容器

編程語言 Docker 軟件 python全棧 python全棧 2017-08-05

為什麼使用docker呢?是因為我看到Docker使用是了“Build once,Run anywhere”意思一次構建,任何地方運行的宣傳。

通過下面兩幅對比圖我們能瞭解容器化和虛擬機有什麼不同。

7天入門python全棧工程師03—玩溜容器

虛擬機架構

7天入門python全棧工程師03—玩溜容器

容器架構

通過這個對比圖我們能看到docker是建立在系統基本上的應用,在通過不同的鏡像實現APP應用的隔離。這樣能避免APP應用對操作系統的依賴,這樣可以構建好鏡像後任意安裝好docker的環境部署,降低對操作系統的依賴。這樣好處是在應用開發完成後,到部署階段避免系統依賴導致應用問題。開發階段就通過鏡像中運行,所有的依賴保持一致,可以無縫部署到生產環境。

1、檢查內核是否支持,需要3.10以上內核才支持

$ uname -r #檢查內核版本

4.4.0-47-generic #當前內核是4.4高於3.10符合要求

7天入門python全棧工程師03—玩溜容器

檢查內核版本

2、更新系統及軟件源啟用https支持

$ sudo apt-get update #更新軟件源列表

$ sudo apt-get install -y apt-transport-https ca-certificates curl software-properties-common #安裝apt-transport-https、ca-certificates、curl和software-properties-common包

7天入門python全棧工程師03—玩溜容器

安裝依賴工具

3、添加Docker的官方GPG密鑰

$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

7天入門python全棧工程師03—玩溜容器

添加Docker的官方GPG密鑰

4、設定docker更新版本

$ sudo add-apt-repository \

> "deb [arch=amd64] https://download.docker.com/linux/ubuntu \

> xenial \

> stable"

7天入門python全棧工程師03—玩溜容器

設定docker更新版本

5、更新軟件源列表及安裝docker-ce(社區版)

$ sudo apt-get update #更新軟件源列表

$ sudo apt-get install -y docker-ce #安裝docker-ce(社區版)

7天入門python全棧工程師03—玩溜容器

安裝docker-ce

6、驗證docker是否安裝正確

$ sudo docker run hello-world # 用管理員權限運行docker

7天入門python全棧工程師03—玩溜容器

檢驗docker是否安裝成功

二、使用Pycharm在本機容器中開發

從PyCharm 2016.1 Professional Edition以上版本新增了開發工具支持docker和vagrant部署開發。

可以在項目新建的時候指定遠程python解釋器或者修改當前項目的解釋器都能切換到容器中運行。這裡演示使用Pycharm2017.1Professional Edition版將現有項目使用的python解釋器切換成容器中的python解釋器,使用docker容器作為項目的運行測試環境。

1、項目內容介紹

首先創建Dockerfile和docker-compose.yml兩個文件,Dockerfile是用來構建用於程序調試的容器環境配置,docker-compose.yml是用於如何運行由Dockerfile生成的容器配置。

Dockerfile File:

# 指定引用官方提供python3.6版本鏡像

FROM python:3.6

# 綁定宿主機5000端口

EXPOSE 5000

# 創建app目錄

RUN mkdir /app

# 指定工作目錄為app

WORKDIR /app

# 複製本地requirements.txt到容器/app下

COPY requirements.txt /app/requirements.txt

# 容器內運行命令,安裝依賴包

RUN pip install -r requirements.txt

# 複製所有內容到/app目錄下

COPY . /app

# 使用python解釋器運行flask-demo

CMD ["python", "flask-demo.py"]

7天入門python全棧工程師03—玩溜容器

Dockerfile文件

docker-compose.yml file:

# Compose文件格式版本

version: '2'

# 定義服務

services:

# web服務

web:

# 構建

build: .

# 宿主機與容器的端口映射

ports:

- "5000:5000"

7天入門python全棧工程師03—玩溜容器

docker-compose.yml

2、將本地python解釋器換成遠程python解釋器

在設置面板中,選擇Project:flask-demo選項中的Project Interpret,點擊右側齒輪,選擇Add Remote添加遠程解釋器,在彈出框中選擇Docker Compose,在Server中選擇上一步新建的遠程API,Configuration file是選擇用於遠程編譯時候的配置。

7天入門python全棧工程師03—玩溜容器

切換遠程解釋器

3、在容器中運行代碼

上面配置好環境後,按Alt+ F12調出控制檯輸入docker-compose up命令自動更加Dockerfile構建容器並使用docker-compose.yml中配置啟動容器。

7天入門python全棧工程師03—玩溜容器

容器內運行python代碼

4、構建好容器後,使用瀏覽器訪問http://0.0.0.0:5000或者http://localhost:5000訪問通過容器生成的網站。

7天入門python全棧工程師03—玩溜容器

瀏覽器中查看容器中運行的代碼

更詳細內容請關注由電子工業出版社2017年10月出版的《python全棧開發實戰》全書400幅圖,包含各種坑解決方法。

相關推薦

推薦中...