配置Django项目
现在针对当前的容器环境修改一下mysite项目的settings.py文件。
$ vim mysite/mysite/settings.py找到文件中的ALLOW_HOSTS部分,添加“web”到其中,内容如下:
ALLOW_HOSTS = [
...
'web'
]然后修改settings.py中的DATABASES部分,把参数改为MySQL服务db的参数,内容大致如下:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'mysite',
'USER': 'root',
'PASSWORD': 'mysite',
'HOST': 'db'
}
}这里的MySQL连接参数都是docker-compose.yml文件中db部分的environment中定义的。值得指出的是参数HOST值为db,docker-compose启动容器后,会连接这些容器,容器之间可以使用服务名称互相ping通,就像使用域名那样,所以这里的“HOST”可直接填写“db”。
使用Docker-compose构建项目
经过以上的努力,基本准备齐备了,我们可以构造我们的镜像了,这里有两个服务,db只需要在运行的时候下载或者使用本地镜像就行,web还需要使用Dockerfile构建一下。
$ docker-compose build经过一阵儿下载或者构建,就能看到成功构建镜像的信息了。
运行项目并测试一下
构建完成后,就有了web服务的镜像了,我们现在使用docker-compose来启动服务。
$ docker-compose up -d这个过程可能也需要执行一阵儿,取决于你的网速,它会下载MySQL的镜像,并且根据db和web的镜像构造容器,并运行容器。完成后可以使用docker-compose ps和docker-compose images来查看我们生成的容器和镜像
$ docker-compose ps
Name Command State Ports
---------------------------------------------------------------------------------------
mysite_db docker-entrypoint.sh mysqld Up 0.0.0.0:3306->3306/tcp, 33060/tcp
mysite_web bash -c python manage.py m ... Up 0.0.0.0:8002->8000/tcp
$ docker-compose images
Container Repository Tag Image Id Size
--------------------------------------------------------
mysite_db mysql 5.7 e47e309f72c8 355 MB
mysite_web mysite_web latest 3989acbcc3c9 938 MB也可使用docker-compose来停止和开始服务,其他更具体的使用方法,请参考官方文档吧。
$ docker-compose start










