docker 部署的网页如何修改 docker 部署网站
vps个人网站迁移的问题
4月份的时候,现在的 vps 提供商升级了硬件配置,为了充分使用vps的资源,我只好重装了操作系统。
本来计划今年把个人的vps主机从国外迁回来,所以为了方便后面的迁移,我把主机上的服务都部署到了 docker 创建的容器环境中,方便后面迁移。
使用了一段时间,运行比较稳定。
docker 简单介绍
Docker 是 PaaS 提供商 dotCloud 开源的一个基于 LXC 的高级容器引擎,可以把整个环境部署到里面,然后打包发放。这个打包包括了容器的操作系统环境,在另一台安装了docker的系统上可以导入镜像文件运行。
LXC 旨在提供一个共享kernel的 OS 级虚拟化方法,在执行时不用重复加载Kernel, 且container的kernel与host共享,因此可以大大加快container的 启动过程,并显著减少内存消耗。
docker容器中运行的进程性能接近本地应用程序。
docker 常用命令
vps主机环境
需要注意安装 docker 的时候确认内核版本,要在 3.10 以上
创建 docker 容器
创建数据目录 /data
创建 /data/docker_config/ 脚本
这个脚本是容器启动后运行的脚本,因为这个脚本是放在/data目录下,所以可以在宿主系统上修改, 这样就可以选择在启动容器的时候是运行shell,还是直接运行服务程序。
脚本启动的服务:
用下面的命令创建容器
# 从 https:/// 下载镜像 pull ubuntu # 创建容器 run -d -m 3G -h 'mydocker' -p 80:80 -p 32000:22 -p 35000:35000 -p 37064:37064 \ -v /data:/data -w /data --name mydocker_c ubuntu /data/docker_config/
查看当前容器
ps -a
配置容器
第一次启动容器时,配置启动执行脚本启动从 shell 启动,这样执行命令 start mydocker_c 就可以启动到 shell,就可以安装需要的软件和服务了。
安装sshd,supervisord,mongodb,mysql,redis等程序
配置 supervisord 管理服务程序。
配置 supervisord 管理 mongodb 服务, 创建文件 /etc/supervisor/conf.d/mongodb.conf,内容如下:
[program:mongodb] autostart=true user=mongodb directory=/var/run/mongodb/ command=mongod run -f /etc/mongodb.conf --pidfilepath /var/run/mongodb/mongodb.pid用 supervisord 管理其他服务的方法与上面相同。
# 启动服务 user@host: ~ $ supervisorctl start # 查看服务状态 user@host: ~ $ supervisorctl status mongodb RUNNING pid 14, uptime 5:50:47 mysql RUNNING pid 21, uptime 5:50:47 nginx RUNNING pid 16, uptime 5:50:47 redis RUNNING pid 15, uptime 5:50:47 sentry-web:sentry-web_00 RUNNING pid 19, uptime 5:50:47 sentry-web:sentry-web_01 RUNNING pid 20, uptime 5:50:47 sentry-web:sentry-web_02 RUNNING pid 17, uptime 5:50:47 sentry-web:sentry-web_03 RUNNING pid 18, uptime 5:50:47 webpy:00 RUNNING pid 32, uptime 5:50:47 webpy:01 RUNNING pid 33, uptime 5:50:47 webpy:02 RUNNING pid 25, uptime 5:50:47 webpy:03 RUNNING pid 27, uptime 5:50:47 webpy:04 RUNNING pid 41, uptime 5:50:47 webpy:05 RUNNING pid 42, uptime 5:50:47 webpy:06 RUNNING pid 35, uptime 5:50:47 webpy:07 RUNNING pid 36, uptime 5:50:47
创建自己的镜像文件
配置完成后进行下面操作:
完成
容器现在启动后,可以自动运行部署的服务。
现在可以 push 镜像文件到远程的仓库( [ https:/// https:///] ),也可以导出使用。个人站点迁移的时候只要把镜像文件导出,并且把 /data 目录打包重新在新的机器上导入镜像文件,解压 /data 目录即可使用(mysql 数据库可能需要用脚本导出再导入,要根据自己的配置来调整,mongodb服务器的数据文件可以直接使用)