背景:
最近公司的禅道系统不稳定,时不时的挂掉,过会儿又自动可以访问,想把Window Server 2003系统下的禅道迁移至Linux系统下。由于禅道系统是php+mysql组成,因此,需要搭建LAMP环境,即Linux+Apache+Mysql+PHP环境,考虑到到LAMP环境,如果是采用安装虚拟机Ubuntu+安装Apache+安装Mysql+安装PHP,那么会比较费劲,而且不方便迁移。
最终,我选择了docker方式来部署,即下载了ushios/lamp-ubuntu镜像,基于此镜像创建容器。网络速度可以的话,半个小时内能下载完ushios/lamp-ubuntu镜像,接近800M,秒级内就能创建好容器,就完成了lamp环境的准备。
以下介绍ushios/lamp-ubuntu镜像的使用,不介绍禅道的迁移
(1)准备个docker环境
(2)下载ushios/lamp-ubuntu镜像,执行如下:
#sudo docker pull ushios/lamp-ubuntu:latest
(3)创建容器,执行如下:
#sudo docker run -d -p 49001:80 -p 49002:3306 -p 49003:22 -v /data:/mnt ushios/lamp-ubuntu
//以上端口49001、49002、49003可以自己指定
//以上的-v /data:/mnt 映射,是宿舍机目录:容器的目录,建议还要对mysql数据文件存放目录/var/lib/mysql/和php的数据存放目录/var/www/html/做映射,根据具体情况可以映射子目录。
注意:a)容器内的目录/tmp最好不要做映射,可能会影响到mysql数据库的使用
b)映射的目录路径会自动创建
c)宿主机的目录会覆盖容器的目录(如果容器内的目录要求不被覆盖,那可以先备份,然后在拷贝回去)
(4)访问apache2
http://ip:49001
说明:以上ip为宿主机的ip
(5)访问数据库
#mysql -u root -p
说明:以上命令要在容器内执行,默认密码为空,可以设置root的密码,即,#mysqladmin -u root password "123456"。如果正常登陆mysql命令操作界面,会显示mysql>
登陆后可以执行如下进行查看:
mysql>show databases; //查看数据库
mysql>use mysql; //使用mysql库
mysql>show tables; //查看mysql库下的表
(6)容器内apache2、mysqld、sshd服务的启动和停止
#supervisorctl status //查看服务状态
#supervisorctl stop apache2 //停止apache2服务
#supervisorctl start apache2
#supervisorctl restart apache2
#supervisorctl stop mysqld //停止mysqld服务
#supervisorctl start mysqld
#supervisorctl restart mysqld
说明:通过service mysql stop、kill -9
服务的启停,在修改配置文件或要移动mysql数据文件时,需要用到。