设置阿里镜像仓库
    [~] 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 -P

    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,添加分号注释即可。