使用Docker-compose离线部署Django应用的方法

2020-06-17 06:39:20易采站长站整理

我们所在的内网环境需要部署一个类似CMS的应用,就是一些表格的CRUD,数据导出,人员权限管理等功能。想到Django做这方面的工作挺擅长的,而且开发量不大,于是选择Django作为开发基础。开发功能比较简单,差不多就是使用xadmin等插件实现以上功能。但有一个问题我们是不好绕过去的,那就是部署到一个内网环境,在内网pip等工具是不能使用的,但好在内网有一个yum服务器可以使用,所以我们决定在内网服务器上安装Docker,然后把开发环境的容器复制到生产环境实现部署。以下是主要的步骤:

安装开发环境的 Docker-ce
安装开发环境的 Docker-compose
配置开发环境
保存容器
安装生产环境的 Docker-ce 和 docker-compose
发送容器文件并运行

注意:我这里的开发环境是Ubuntu18.04,生产环境是Centos7.2。如果你是其他环境请自己检查差异,使用适合自己系统的命令。

安装开发环境的 Docker-ce

Docker 和 Docker-compose是我们这次部署需要重点演示的内容,Django 的应用部分我会尽量缩减的。Docker 负责容器虚拟化的底层部分,Docker-compose 是一个容器编排工具,有了它咱们就不用手写 shell 实现容器之间的连接了。我们先安装 Docker-ce,这里主要是参考 Docker 的官方文档,如果我写的不够详细或者已经过时,各位看官可到官方查看更权威更新的文档。

卸载旧版本

在安装之前需要卸载旧版本的 docker,如果你是新系统,可以忽略这一步。


$ sudo apt remove docker docker-engine docker.io containerd runc

安装用用到的 apt 仓库

更新apt包索引


$ sudo apt update

允许apt通过https访问仓库


$ sudo apt install
apt-transport-https
ca-certificates
curl
gnupg-agent
software-properties-common

增加Docker的官方GPG key


$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

增加Docker的仓库


$ sudo add-apt-repository
"deb [arch=amd64] https://download.docker.com/linux/ubuntu
$(lsb_release -cs)
stable"

安装 Docker-ce

做好以上的准备后安装Docker-ce就简单了,熟悉Ubuntu的话,很快就能装好。


$ sudo apt update
$ sudo apt install -y docker-ce

安装完成后,启动 docker 服务并使其能够在每次系统引导时启动。


$ sudo systemctl start docker