LAMP介绍
LAMP 指的 Linux(操作系统)、ApacheHTTP 服务器,MySQL(有时也指MariaDB,数据库软件) 和 PHP(有时也是指 Perl 或 Python) 的第一个字母,一般用来建立 web 服务器。 虽然这些开放源代码程序本身并不是专门设计成同另几个程序一起工作的,但由于它们的免费和开源,这个组合开始流行(大多数Linux发行版本***了这些软件)。当一起使用的时候,它们表现的像一个具有活力的解决方案包。
下面介绍如何使用docker来搭建一个包含lamp组件的容器:
从网站上 pull 一个 lamp 镜像
官方的仓里没有标 OFFICIAL 的 lamp 的镜像,不过 「tutum」的镜像做的非常好,我们可以直接 pull 他们的镜像来完成我们的操作。
"lang-bash">core@localhost ~/base $ docker pull tutum/lamp Pulling repository tutum/lamp b32789c7d66: Download complete ...
使用默认方式启动 lamp 容器,命令如下:
docker run -d --name=lamp -p 8080:80 -p 3306:3306 tutum/lamp
访问 公网IP:8080/index.php
这样一个最简单原始的LAMP环境就搭建好了,是不是非常简单!希望大家按照这个步骤走下来,之前对DOCKER的不了解,能有一种拨开云雾见月明的感觉。
#使用curl可以查看到默认的应用已经启动
<html> <head> <title>Hello world!</title> <style> body { background-color: white; text-align: center; padding: 50px; font-family: "Open Sans "hljs-string">","Helvetica Neue "hljs-string">",Helvetica,Arial,sans-serif; } #logo { margin-bottom: 40px; } </style> </head> <body> <img id="logo "hljs-string">" src="http://upload.server110.com/image/20141116/205R55010-0.png" /> <h1>Hello world!</h1> <h2>MySQL Server version: 5.5.38-0ubuntu0.14.04.1</h2> </body> </html>
部署自己的 PHP 应用
默认的容器启动了一个 helloword 应用,我们可以使用 dockerfile 创建另外一个镜像来部署我们自己的应用程序,dockerfile 的详细语法将在后面章节介绍。
core@localhost ~ $ mkdir php core@localhost ~ $ cd php/ core@localhost ~/php $ touch Dockerfile core@localhost ~/php $ vi Dockerfile core@localhost ~/php $ docker build -t dockerpool/my-lamp-app .
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 3306 CMD ["/run.sh"]
再次启动自己的容器就完成部署了
"lang-bash">core@localhost ~/php $ docker stop ee ee core@localhost ~/php $ docker rm ee ee core@localhost ~/php $ docker run "hljs-operator">-d -p : -p : dockerpool/my-lamp-app
使用 curl看下自己的应用程序是不是已经正确启动了吧!
curl http://localhost/
在 php 程序中连接数据库 在容器中访问 mysql 数据库
这个镜像的 mysql 数据库有个默认的 root 用户,本地连接时可以不用密码,所以在代码访问非常简单。
"hljs-preprocessor"><?php $mysql = "hljs-keyword">new mysqli( "hljs-string">"localhost", "hljs-string">"root"); echo "hljs-string">"MySQL Server info: ". "hljs-variable">$mysql "hljs-variable">->host_info; ?>
在容器外部访问 mysql 数据库
当我们第一次以 tutum/lamp 镜像启动容器的时候,它会自动创建一个叫 admin 的 mysql 用户,并生成一个随机密码,使用「docker logs +容器ID」可以获取到这个密码。
"lang-bash">core@localhost ~/php $ docker logs cb => An empty or uninitialized MySQL volume is detected in /var/lib/mysql => Installing MySQL ... => Done! => Waiting "hljs-keyword">for confirmation of MySQL service startup => Creating MySQL admin user with random password => Done! ======================================================================== You can now connect to this MySQL Server using: mysql -uadmin -p2Ijg6gvmM0N3 -h<host> -P<port> Please remember to change the above password as soon as possible! MySQL user "hljs-string">'root' has no password but only allows local connections ========================================================================
默认的 root 用户无法远程登陆,所以要使用 admin 用户,它同样具有 root 权限。
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家用docker搭建LAMP能有所帮助,如果有疑问大家可以留言交流。
参考文章:
https://zhuanlan.zhihu.com/p/109099491
https://blog.csdn.net/weixin_45144935/article/details/123237699
本期内容就到这里啦~以上内容均可在 方包博客「http://fang1688.cn」 网站直接搜索名称访问哦。欢迎感兴趣的小伙伴试试,如果本文对您有帮助,也请帮忙点个 赞 + 在看 啦!❤️
欢迎大家加入方包的「优派编程」学习圈子,和多名小伙伴们一起交流学习,向方包 1 对 1 提问、跟着方包做项目、领取大量编程资源等。Q群「891029429」欢迎想一起学习进步的小伙伴~
另外方包最近开发了一款工具类的小程序「方包工具箱」,功能包括:抖音、小红书、快手去水印,天气预报,小说在线免费阅读(内含上万部热门小说),历史今天,生成图片二维码,图片识别文字,ai伪原创文章,数字摇号抽奖,文字转语音MP3功能...
定期分享 it编程干货
⬇️ 点击链接阅读原文直达 方包博客
评论抢沙发