未加星标

利用docker搭建LAMP运行环境教程详解

字体大小 | |
[运维安全 所属分类 运维安全 | 发布者 店小二05 | 时间 | 作者 红领巾 ] 0人收藏点击收藏

LAMP介绍

LAMP 指的 linux(操作系统)、ApacheHTTP 服务器,mysql(有时也指MariaDB,数据库软件) 和php(有时也是指 Perl 或 python) 的第一个字母,一般用来建立 web 服务器。 虽然这些开放源代码程序本身并不是专门设计成同另几个程序一起工作的,但由于它们的免费和开源,这个组合开始流行(大多数Linux发行版本***了这些软件)。当一起使用的时候,它们表现的像一个具有活力的解决方案包。

下面介绍如何使用docker来搭建一个包含lamp组件的容器:
从网站上 pull 一个 lamp 镜像

官方的仓里没有标 OFFICIAL 的 lamp 的镜像,不过 「tutum」的镜像做的非常好,我们可以直接 pull 他们的镜像来完成我们的操作。

"lang-bash">[email protected] ~/base $ docker pull tutum/lamp
Pulling repository tutum/lamp
b32789c7d66: Download complete
...
使用默认方式启动 lamp 容器

"lang-bash">[email protected] ~/base $ docker run "hljs-operator">-d -p : -p : tutum/lamp

ee00c97a5cdefb985baf826c16723f333aa5edddee4072a5107c724ad09f10d
[email protected] ~/base $ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
ee00c97a5 "hljs-built_in">cd tutum/lamp:latest "/run.sh" seconds ago Up seconds 0.0.0.0:->/tcp, 0.0.0.0:->/tcp lonely_davinci
e3c136d76b44 tutum/tomcat: "hljs-number">8.0 "hljs-string">"/run.sh" minutes ago Up minutes "hljs-number">0.0. "hljs-number">0.0:->/tcp tomcat001
fe9e65aaf58c dl.dockerpool.com:/mysql: "hljs-number">5.7 "hljs-string">"/entrypoint.sh mysq 51 minutes ago Up 51 minutes 3306/tcp db001,tomcat001/tomysql
[email protected] ~/base $ curl http://127.0.0.1:8080
#使用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 的详细语法将在后面章节介绍。

[email protected] ~ $ mkdir php
[email protected] ~ $ cd php/
[email protected] ~/php $ touch Dockerfile
[email protected] ~/php $ vi Dockerfile
[email protected] ~/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">[email protected] ~/php $ docker stop ee
ee
[email protected] ~/php $ docker rm ee
ee
[email protected] ~/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">[email protected] ~/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能有所帮助,如果有疑问大家可以留言交流。

本文运维安全相关术语:linux服务器代维 linux服务器搭建 运维管理 运维工程师 企业安全文章 企业安全管理 cf安全系统检测到游戏数据异常

主题: SQLMySQLDockerPHPLinux服务器开源Perl数据SQL Server
分页:12
转载请注明
本文标题:利用docker搭建LAMP运行环境教程详解
本站链接:http://www.codesec.net/view/484795.html
分享请点击:


1.凡CodeSecTeam转载的文章,均出自其它媒体或其他官网介绍,目的在于传递更多的信息,并不代表本站赞同其观点和其真实性负责;
2.转载的文章仅代表原创作者观点,与本站无关。其原创性以及文中陈述文字和内容未经本站证实,本站对该文以及其中全部或者部分内容、文字的真实性、完整性、及时性,不作出任何保证或承若;
3.如本站转载稿涉及版权等问题,请作者及时联系本站,我们会及时处理。
登录后可拥有收藏文章、关注作者等权限...
技术大类 技术大类 | 运维安全 | 评论(0) | 阅读(19)