⑴在Linux系统中Docker是一个应用开发平台,可以把应用在Docker上打包,然后在Linux Docker上运行调试。而且目前Docker是Linux最火热的软件发布器之一了。本文就来介绍一下Linux系统使用Docker开发Django项目教程。
⑵通过 Docker Machine 「系统配置」和 Docker pose 「多容器应用组装」 提供堆栈可以完成 Postgres, Redis 和 Django 项目相结合的开发。
⑶而在最后,该堆栈将包括如下每个服务的单独的容器:
⑷一个 Web/ Django 的容器
⑸一个 Nginx 的容器
⑹一个 Postgres 的容器
⑺一个 Redis 的容器
⑻一个 Data 容器
⑼使用 Docker「v..」版本我们将使用到 Docker pose 「v..」编排一个多容器组成的应用程序,使用 Docker Machine「v..」创建本地和云的 Docker 主机。 按照指示,分别安装 Docker pose 和 Machine,然后测试安装结果:
⑽$ docker-machine --version
⑾docker-machine version .. (beaf
⑿$ docker-pose --version
⒀docker-pose ..
⒁接下来,根据以下项目结构从realpython/dockerizing-django克隆一份项目或自己创建项目:
⒂├── docker-pose.yml
⒃├── nginx
⒄│ ├── Dockerfile
⒅│ └── sites-enabled
⒆│ └── django_project
⒇├── production.yml
⒈│ ├── 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[] Creating CA: /Users/michael/.docker/machine/certs/ca.pem
⑧INFO[] Creating client certificate: /Users/michael/.docker/machine/certs/cert.pem
⑨INFO[] Downloading bootdocker.iso to /Users/michael/.docker/machine/cache/bootdocker.iso.。。
⑩INFO[] Creating SSH key.。。
ⅠINFO[] Creating VirtualBox VM.。。
ⅡINFO[] Starting VirtualBox VM.。。
ⅢINFO[] Waiting for VM to start.。。
ⅣINFO[] “dev” has been created and is now the active machine.
ⅤINFO[] To point your Docker client at it, run this in your shell: eval “$(docker-machine env dev”
Ⅵ这个 create 命令设置一个新的 Machine「开发环境」。实际上,它是下载 BootDocker 并开始运行 VM。现在只要在开发环境下指定 Docker:
Ⅶ$ eval “$(docker-machine env dev”
Ⅷ运行以下命令来查看当前正在运行的机器:
Ⅸ$ docker-machine ls
ⅩNAME ACTIVE DRIVER STATE URL
㈠dev * virtualbox Running
㈡接下来,我们会让 Django,Postgres 和 Redis 的容器运行起来。