在Linux系統中Docker是一個應用開發平台,可以把應用在Docker上打包,然後在Linux Docker上運行調試。而且目前Docker是Linux最火熱的軟件發布器之一了。本文就來介紹一下Linux系統使用Docker開發Django項目教程。
通過 Docker Machine 「系統配置」和 Docker Compose 「多容器應用組裝」 提供堆棧可以完成 Postgres, Redis 和 Django 項目相結合的開發。
而在最後,該堆棧將包括如下每個服務的單獨的容器:
一個 Web/ Django 的容器
一個 Nginx 的容器
一個 Postgres 的容器
一個 Redis 的容器
一個 Data 容器
本地設置
使用 Docker「v1.6.1」版本我們將使用到 Docker Compose 「v1.2.0」編排一個多容器組成的應用程序,使用 Docker Machine「v0.2.0」創建本地和雲的 Docker 主機。 按照指示,分別安裝 Docker Compose 和 Machine,然後測試安裝結果:
$ docker-machine --version
docker-machine version 0.2.0 (8b9eaf2)
$ docker-compose --version
docker-compose 1.2.0
接下來,根據以下項目結構從realpython/dockerizing-django克隆一份項目或自己創建項目:
├── docker-compose.yml
├── nginx
│ ├── Dockerfile
│ └── sites-enabled
│ └── django_project
├── production.yml
└── web
│ ├── Dockerfile
│ ├── docker_django
│ │ ├── __init__.py
│ │ ├── apps
│ │ │ ├── __init__.py
│ │ │ └── todo
│ │ │ ├── __init__.py
│ │ │ ├── admin.py
│ │ │ ├── models.py
│ │ │ ├── templates
│ │ │ │ ├── _base.html
│ │ │ │ └── home.html
│ │ │ ├── tests.py
│ │ │ ├── urls.py
│ │ │ └── views.py
│ │ ├── settings.py
│ │ ├── urls.py
│ └── wsgi.py
│ ├── manage.py
│ ├── requirements.txt
│ └── static
│ │ └── main.css《/code》
現在我們准備容器運行……
Docker Machine
開啟 Docker Machine,只需運行:
$ docker-machine create -d virtualbox dev;
INFO[0000] Creating CA: /Users/michael/.docker/machine/certs/ca.pem
INFO[0000] Creating client certificate: /Users/michael/.docker/machine/certs/cert.pem
INFO[0001] Downloading boot2docker.iso to /Users/michael/.docker/machine/cache/boot2docker.iso.。。
INFO[0035] Creating SSH key.。。
INFO[0035] Creating VirtualBox VM.。。
INFO[0043] Starting VirtualBox VM.。。
INFO[0044] Waiting for VM to start.。。
INFO[0094] “dev” has been created and is now the active machine.
INFO[0094] To point your Docker client at it, run this in your shell: eval “$(docker-machine env dev)”
這個 create 命令設置一個新的 Machine「開發環境」。實際上,它是下載 Boot2Docker 並開始運行 VM。現在只要在開發環境下指定 Docker:
$ eval “$(docker-machine env dev)”
運行以下命令來查看當前正在運行的機器:
$ docker-machine ls
NAME ACTIVE DRIVER STATE URL
dev * virtualbox Running tcp://192.168.99.100:2376
接下來,我們會讓 Django,Postgres 和 Redis 的容器運行起來。 上一頁1234下一頁共4頁