本章將在本地搭建一個容器化的 Django 項目,感受 Docker 的運作方式。
前期準備
開發環境
雖然有基于 Windows 的 Docker 版本,但各方面兼容做得都不太好(安裝也麻煩些),因此建議讀者在學習前,自行安裝好 Linux 或 Mac 系統。當然你愿意折騰的話,在 Windows 上搞也行。
別擔心,以后開發 Django 項目仍然可以在 Windows 下進行,僅僅是開發時不使用 Docker 而已。
軟件安裝
準備就緒后就繼續下一步吧。
創建 Django 項目
打開 Linux/Mac 的終端,安裝 Django 庫:
$ pip install django==2.2
在一個你喜歡得位置(比如/home/)創建新的 Django 項目:
$ django-admin startproject django_app
進入項目根目錄:
$ cd django_app
教程后面的內容全部都在此目錄中操作了。為方便閱讀,命令提示符 $ 代表目前在項目根目錄 django_app/,mysql $ 則代表目前在目錄 django_app/mysql/ 中,請讀者操作時稍加留意當前的工作目錄。
然后遷移數據:
$ python manage.py migrateOperations to perform: Apply all migrations: admin, auth, contenttypes, sessionsRunning migrations: Applying contenttypes.0001_initial... OK ... Applying sessions.0001_initial... OK
準備工作就搞定了。
用Docker構建項目
初識Docker
Docker 的整個生命周期由三部分組成:鏡像(image)+ 容器(container)+ 倉庫(repository)。
容器是由鏡像實例化而來,這有點像面向對象的概念:鏡像就是類,容器是類實例化之后的對象。
鏡像是一個只讀的模板,它包括了運行容器所需的數據。鏡像可以包含一個完整的 Linux 操作環境,里面僅安裝了 Python 或者其他用戶需要的程序。
容器是由鏡像創建出來的實例,類似虛擬機,里面可以運行特定的應用,并且容器與容器是相互隔離的。
倉庫概念與 Git 和 Github 類似,如果你用過它們就非常容易理解。Docker 使用的默認倉庫是由官方維護的 Docker hub 公共倉庫,從中上傳、拉取的操作類似 Git。
目前需要了解的就這么多,下面通過實踐來理解。
Hello-world
為了確認 Docker 已經正確安裝了,運行以下指令:
$ docker run hello-worldUnable to find image 'hello-world:latest' locally...latest: Pulling from library/hello-world1b930d010525: Pull complete ...Hello from Docker!This message shows that your installation appears to be working correctly....
一切正常的話,終端將打印出如上圖所示的歡迎語句。docker run hello-world 指令的含義是:用名稱為 hello-world 的鏡像構建一個容器并運行。如果本地上沒有這個 hello-world 的鏡像, Docker 會自動從倉庫搜索并下載同名的鏡像。
我們可以用 docker images 查看本地已有的鏡像:
$ docker imagesREPOSITORY TAG IMAGE ID CREATED SIZEhello-world latest fce289e99eb9 9 months ago 1.84kB
新聞熱點
疑難解答