设置阿里镜像仓库
[~] cat /etc/docker/daemon.json
{
“registry-mirrors”: [“https://3laho3y3.mirror.aliyuncs.com“]
}
使用的镜像名称 mattrayner/lamp
docker pull mattrayner/lamp
https://hub.docker.com/r/mattrayner/lamp
上面有安装的说明,主要是两个地方:
在项目的目录中,建议两个目录 app mysql,
这两个目录映射到container的/app和 /var/lib/mysql,就是web目录和数据文件目录
docker run -i -t —name web -p “80:80” -v ${PWD}/app:/app -v ${PWD}/mysql:/var/lib/mysql mattrayner/lamp
可以在app目录中写代码,数据库文件自动保存到mysql目录中。
在container内部,apache的配置文件是/var/www/html,这个/var/www/html是指向/app的链接,也就是说,可以修改sites-enable目录的.conf文件,指向/var/www/html/自定义的目录
这个container的时区设置的是0,可以修改为东8区,
使用命令 sudo tzselect
PHP设置时区,在入口文件设置:
date_default_timezone_set(‘Asia/Shanghai’) && error_reporting(0);
mysql数据库密码
文档中说第一次运行container时会显示这个密码,如果没有注意,可以使用命令
docker ps -a 显示所有的container,从这找到 container_id
docker logs CONTAINER_ID, 来查看运行的日志<br />
大概是下面这个样子
========================================================================
You can now connect to this MySQL Server with KAoRFfQyxXn0
mysql -uadmin -pKAoRFfQyxXn0 -h
Please remember to change the above password as soon as possible!
MySQL user ‘root’ has no password but only allows local connections
enjoy!
========================================================================
红色的就是密码,用户名不是root,是admin
可以使用localhost/phpmyadmin,使用admin登录,然后修改密码。
mysql中root是空密码,只允许本地登录,可以设置密码。
由于PHP7.2以后就不支持mcrypt扩展了,所以会报错,mcrypt.so: cannot open shared object file
解决方式,把mcrypt注释掉,进入container
docker exec -it web bash
vi /etc/php/7.3/mods-available/mcrypt.ini,添加分号注释即可。