Docker对于开发和维护确实带来了很大的好处,可是对于小型应用怎样部署?所讲内容限定在一个主机里。

Docker部署模型-小型应用.png

在前端使用Nginx将不同域名的应用(或者根据路径)转发到对应的容器

在主机重启后,Docker容器的IP地址会发生改变,目前可以使用docker run的--link mysql:mysql参数指定依赖,在容器中即可通过名称访问,这个名称对应的IP将会出现在/etc/hosts中。

docker run -t -i --restart=always --link crm:crm --link objstsvr:objstsvr --name nginx -p 80:80 -p 443:443 y2link/nginx /bin/bash

在nginx中就可以通过crm和objstsvr访问这两个容器,其中一个配置文件样例crm.conf

server {
    listen 80;
    server_name crm.getdemo.cn;

    location / {
        proxy_redirect off;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_pass http://crm:12080;
    }

    access_log /var/log/nginx/crm.log;
}

link有一定的局限性:

  • 当容器更新后,以同样的名称重新建立,这事依赖这个容器的其它容器也得重新建立,估计link是通过id而不是名称进行的。

使用Docker的几个注意事项:

  • 不要将数据放在容器内部,使用 -v 参数将数据存储在主机目录中。

[ 编辑 | 历史 ]
最近由“jilili”在“2016-10-12 04:17:37”修改