注: 如果你使用的系统已经预装Docker,或者你使用的是Docker容器平台,可以跳过安装Docker步骤
本教程配置后的站点使用的数据库默认为sqlite
更新镜像时只需要备份容器中的 database.db 文件即可
将容器中的数据库文件拷贝到当前目录docker cp qiandao:/usr/src/app/database.db .
将备份的数据库拷贝到容器中(当前目录的database.db文件)
docker cp database.db qiandao:/usr/src/app/
建议恢复数据库后立即重启容器,重启方法请见下方 其他命令
源项目地址 点击访问
如何创建自己的Docker镜像,可参考本镜像的构建文件 Dockerfile
- 国内主机安装Docker
- 使用国内镜像安装Docker
curl -sSL https://get.daocloud.io/docker | sh
- 启动Docker服务
service docker start
- 使用国内镜像安装Docker
- 国外主机安装Docker
- 使用官网地址安装Docker
curl -sSL https://get.docker.com | sh
- 启动Docker服务
service docker start
- 使用官网地址安装Docker
- Centos使用yum安装Docker
如果在国内使用该方式,推荐使用阿里云的yum源,配置方法请百度- 升级现有依赖(建议)
yum update -y
- 安装Docker
yum install docker -y
- 启动Docker服务
service docker start
- 升级现有依赖(建议)
- 设置Docker服务项开机自启( 重要 )
systemctl enable docker
- 国内主机拉取/更新镜像
docker pull daocloud.io/fangzhengjin/qiandao
- 国外主机拉取/更新镜像
docker pull fangzhengjin/qiandao
- 更新镜像需要删除并重新创建容器(需要手动备份数据库文件),不删除重新创建容器则依然使用创建时的版本,或手动更新代码!
- 说明
Docker中容器的名称与ID是唯一的,如果需要重新创建容器,需要先删除之前的容器,见后面其他命令
如果在创建容器后,自动启动容器出现问题,可能是端口冲突,你可以选择关闭占用80端口的程序
或更改容器开放端口(容器内程序的监听端口制作时已更改为80)注:如果你已经创建了容器,请删除后重新创建docker run -d -p 你指定的端口:80 --name qiandao daocloud.io/fangzhengjin/qiandao
- 国内主机
-
什么是Volume
你可以把Volume理解为一个挂载点,意为将主机中的目录挂载到容器中,这样可以在容器中与主机挂载点的文件交互
添加Volume需要添加以下参数
-v 主机挂载点:容器挂载点-v /root(建议使用绝对路径):/usr/src/root(建议使用绝对路径)
意为将主机中的/root目录 连接到容器中的 /usr/src/root 位置,在容器中复制文件到/usr/src/root中,其会出现在主机的/root目录中
-
设置容器重启动策略
重启动策略有以下三种:- 始终重启(可用作开机自启,前提是Docker服务必须开机自启动)
--restart=always
- 退出状态非0时重启
该方式可以指定遇到错误时尝试重启的最大次数,例出错时最大重启5次
--restart=on-failure
--restart=on-failure:5
- 不重启(默认)
--restart=no
- 样例(始终重启--开机时,如果Docker服务项已经启动则自动启动该容器)
docker run -d -p 80:80 --name qiandao --restart=always daocloud.io/fangzhengjin/qiandao
- 始终重启(可用作开机自启,前提是Docker服务必须开机自启动)
-
不需要挂载Volume
docker run -d -p 80:80 --name qiandao daocloud.io/fangzhengjin/qiandao
-
需要挂载Volume(在root目录下创建volume,并连接至容器中/usr/src/app/volume位置,也就是代码目录的volume文件夹)
mkdir -p /root/volume docker run -d -p 80:80 --name qiandao -v /root/volume:/usr/src/app/volume daocloud.io/fangzhengjin/qiandao
-
- 国外主机
- 不需要挂载Volume
docker run -d -p 80:80 --name qiandao fangzhengjin/qiandao
- 需要挂载Volume(在root目录下创建volume,并连接至容器中/usr/src/app/volume位置,也就是代码目录的volume文件夹)
mkdir -p /root/volume docker run -d -p 80:80 --name qiandao -v /root/volume:/usr/src/app/volume fangzhengjin/qiandao
- 不需要挂载Volume
- 说明
首次创建容器后,将自动启动容器 - 手动启动容器
docker start qiandao
- 进入容器管理
docker exec -it qiandao /bin/bash
- 设置站点管理员
例:
python ./chrole.py 注册邮箱(该用户必须已经注册) admin
python ./chrole.py [email protected] admin
- 退出容器管理
exit
- 重启容器
docker restart qiandao
- 关闭容器
docker stop qiandao
- 删除容器
使用参数 -v 的作用是为了确保删除容器自动创建的Volume
docker rm -v qiandao
其他站点配置请参考 配置说明