用Docker搭建web開發環境

2022-03-18 08:06:51 字數 1759 閱讀 9942

需要解決的主要問題:如何在宿主機修改**,在容器中實時重新整理**效果。

解決方案就是volume,掛載。具體操作方式也有多種,本文通過編寫compose檔案的方式來實現掛載。

筆者使用docker的思想是:映象作為材料,compose作為藍圖,通過修改藍圖來生成分別適用於開發、測試、生產環境的容器。

映象是乙個相對比較固定的部分。

具體實踐是:dockerfile來生成映象,映象包含執行時的必要條件(庫依賴、原始碼之類)。compose來決定執行時的環境(容器連線、掛載、環境變數等)。

以flask專案為例。

新建乙個目錄叫 flask-demo, 這個目錄將存放我們的專案原始碼和dockerfile檔案。

$ mkdir flask-demo

$ cd flask-demo

在flask-demo裡建立乙個目錄叫hello,並建立flask專案放於該目錄。

現在的目錄結構是這樣的

flask-demo

- hello # 這裡就是flask專案

- .....

from flask import flask

def hello_world():

return 'hello world!'

if __name__ == '__main__':

建立乙個映象,該映象包含web原始碼和web的依賴。

在flask-demo目錄裡,建立dockerfile檔案

dockerfile

from python

run apt-get update

run pip install flask

expose 80

生成映象

# build乙個名為flask-demo的映象

$ docker build -t flask-demo ./

# 執行flask-demo映象. 將宿主機的5000埠對映到容器的80埠

$ docker run -p 5000:80 flask-demo

現在,瀏覽器輸入 http://localhost:5000 就可以看到正常執行的網頁了。

那麼,證明我們的映象是ok的了。

但是,現在宿主機修改**,容器是不會重新整理的,因為容器裡面的**只是乙份拷貝。

現在,我們來編寫compose檔案

還是在flask-demo目錄裡,新建檔案docker-compose.yml

docker-compose.yml

version: "3"

services:

flask-demo:

build: ./

ports:

- "5000:80"

volumes:

environment:

- flask_env=development # 指定開發環境,修改**會實時重新整理專案

(如果dockerfile和docker-compose.yml有相同的字段配置,那麼會優先採用docker-compose.yml的配置。)

現在來測試一下我們的compose檔案。

【記得把剛才執行的容器停止了】

執行以下命令來執行容器

$ docker-compose up
現在,瀏覽器輸入 http://localhost:5000 就看到正常執行的網頁了。

使用Docker如何搭建Web漏洞測試環境?

本文和大家分享的是使用 docker 搭建web漏洞測試環境 學習docker 這些漏洞環境一般搭建比較繁瑣,而且出問題後有不能像 git 那樣方便的 回滾 操作,當然你可以使用 esxi 來管理,不過虛擬機器仍然會存在定期快照 回滾操作較長等繁重操作。那有沒有輕量級的能夠快速搭建 web 漏洞的測...

使用Docker快速搭建Kafka開發環境

1 zookeeper 1 kafka 這裡以我自己最常用的wurstmeister kafka為例,使用docker compose執行乙個只有乙個zookeeper node和乙個kafka broker的開發環境 version 2 services zoo1 image wurstmeist...

Mac系統上用Docker搭建lamp環境

前言 docker終於出來mac版本了,趕緊去 安裝步驟,以前沒有mac版本的時候還要裝docker toolbox,現在直接 安裝就好了。安裝好了的樣子 狀態列docker的提示 這個時候就可以到終端裡面輸入docker命令 docker version docker version 1.13.0...