• 技术文章 >运维 >Docker

    docker中的lamp是什么

    青灯夜游青灯夜游2022-02-08 16:44:29原创246

    在docker中,LAMP是指Linux(操作系统)、Apache HTTP服务器、MySQL(MariaDB等数据库软件)和PHP(Perl或Python)的组合方案,一般用来建立Web服务器环境。

    本教程操作环境:linux5.9.8系统、docker-1.13.1版、Dell G3电脑。

    LAMP指的Linux(操作系统)、Apache HTTP服务器、MySQL(有时也指MariaDB,数据库软件)和PHP(有时也是指Perl或Python)的组合方案,一般很适合用来建立Web服务器环境。

    下面介绍如何使用Docker来搭建一个包含LAMP组件的容器。

    下载LAMP镜像

    搜索Docker Hub上被收藏或使用较多的LAMP镜像,笔者推荐选择tutum/lamp镜像:

    # sudo docker search -s 10 lamp
    tutum/lamp              Out-of-the-box LAMP image (PHP+MySQL)           67 
    
    执行docker pull命令,下载镜像:
     # sudo docker pull tutum/lamp

    使用默认方式启动LAMP容器

    利用下载的镜像启动一个容器,并映射容器的8080端口和3306端口:

    # sudo docker run -d -p 8080:80 -p 3306:3306 tutum/lamp
    # docker ps
    使用curl命令测试,可以查看到默认的应用已经启动:
    # curl http://127.0.0.1:8080

    部署自己的PHP应用

    默认的容器启动了一个helloword应用。读者可以基于此镜像,编辑Dockerfile来创建自定义LAMP应用镜像。

    在宿主主机上创建新的工作目录lamp:

    # mkdir lamp
    # cd lamp
    # touch Dockerfile

    在php目录下里面创建Dockerfile文件,内容为:

    FROM tutum/lamp:latest
    RUN rm -fr /app &&git clone https://github.com/username/customapp.git /app
    #这里将https://github.com/username/customapp.git 地址替换为你自己的项目地址
    EXPOSE 80 3306CMD ["/run.sh"]

    创建镜像,命名为dockerpool/my-lamp-app:

    # docker build -t dockerpool/my-lamp-app .
    利用新创建镜像启动容器,注意启动时候指定-d参数,让容器后台运行:
    # docker run -d -p 8080:80 -p 3306:3306 dockerpool/my-lamp-app
    在本地主机上使用curl看一下自己的应用程序是不是已经正确启动:
    # curl http://127.0.0.1:8080/

    在PHP程序中连接数据库

    1、在容器中访问MySQL数据库

    下载的tutum/lamp镜像中的MySQL数据库已带有默认的root用户,本地连接可以不使用密码,所以在代码中访问数据库的实现非常简单:

    <?php
    $mysql = new mysqli("localhost", "root");
    echo "MySQL Server info: ".$mysql->host_info;
    ?>

    2、在容器外访问MySQL数据库

    默认的MySQL数据库不支持root用户远程登录,因此在容器外无法直接通过root用户访问MySQL数据库。
    当第一次使用tutum/lamp镜像启动容器的时候,它会自动创建一个叫admin的MySQL用户,并生成一个随机密码,使用docker logs命令可以获取到这个密码:

    # sudo docker logs 9cb

    注意 admin用户具有root相同的权限。

    推荐学习:《docker视频教程

    以上就是docker中的lamp是什么的详细内容,更多请关注php中文网其它相关文章!

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    专题推荐:docker lamp
    上一篇:docker基础之compose文件结构以及安装工具(实例详解) 下一篇:docker存储有哪几种方式
    PHP编程就业班

    相关文章推荐

    • lamp环境无法解析php环境• docker启动失败怎么查看日志• docker容器和仓库的区别是什么• docker用什么命令来查看运行的容器• docker是什么时候出的

    全部评论我要评论

  • 取消发布评论发送
  • 1/1

    PHP中文网