之前个人博客一直部署在阿里云主机上,最近在研究Docker容器化时灵机一动,决定将所有应用打包进容器里——目的就是让未来的迁移和部署更省心。当时使用的Docker版本是1.6.0-rc5,版本虽然较早,但核心功能都已具备,足以完成容器化改造。
下面直接分享Docker容器迁移的完整操作记录,每个命令都标注了参数含义,方便大家参考和复现。
# 参数解释:
--name: 指定容器名字
-v: 把宿主机目录挂载到容器目录上
--restart always: 不管退出码是多少都要重启
--link: 容器和容器之间建立连接
# 启动php容器
docker run -d --name php-5.6.9 -v /alidate/www:/data/www --restart always ted1993/php:5.6.9
# 启动mysql容器
docker run -d --name mysql-5.5.37 -v /alidata/server/mysql/data:/data/server/mysql/data/ --restart always ted1993/mysql:5.5.37
# 启动nginx容器
docker run -d -p 80:80 --name nginx-1.4.7 -v /alidate/www:/data/www --restart always --link mysql-5.5.37:mysql_link php-5.6.9:php_link ted1993/nginx:1.4.7
启动各容器后,将网站文件目录和数据库数据目录分别挂载到容器中——这种数据持久化方式极大方便了日常管理:比如在宿主机上修改文件,容器内即刻同步生效。连接数据库时,只需将连接地址设置为mysql_link即可,无需关心IP变动,容器间通信十分便捷。
为简化日常操作,还额外部署了csphere,借助其Web界面实现Docker容器的可视化管理和监控,免去频繁敲命令行的繁琐工作,显著提升运维效率。
