gpt4 book ai didi

Docker 搭建lamp应用实例详解

转载 作者:qq735679552 更新时间:2022-09-28 22:32:09 29 4
gpt4 key购买 nike

CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.

这篇CFSDN的博客文章Docker 搭建lamp应用实例详解由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.

Docker 搭建lamp应用 。

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

从网站上 pull 一个 lamp 镜像 。

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

?
1
2
3
4
core@localhost ~ /base $ docker pull tutum /lamp
Pulling repository tutum /lamp
4b32789c7d66: Download complete
...

使用默认方式启动 lamp 容器 。

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
core@localhost ~ /base $ docker run -d -p 8080:80 -p 3306:3306 tutum /lamp
#启动应用并映射 8080 端口和 3306 端口
0ee00c97a5cdefb985baf826c16723f333aa5edddee4072a5107c724ad09f10d
core@localhost ~ /base $ docker ps
CONTAINER ID    IMAGE               COMMAND        CREATED       STATUS       PORTS                     NAMES
0ee00c97a5cd    tutum /lamp :latest         "/run.sh"       3 seconds ago    Up 2 seconds    0.0.0.0:3306->3306 /tcp , 0.0.0.0:8080->80 /tcp  lonely_davinci
e3c136d76b44    tutum /tomcat :8.0          "/run.sh"       45 minutes ago   Up 45 minutes    0.0.0.0:80->8080 /tcp              tomcat001
fe9e65aaf58c    dl.dockerpool.com:5000 /mysql :5.7  " /entrypoint .sh mysq  51 minutes ago   Up 51 minutes    3306 /tcp                    db001,tomcat001 /tomysql
core@localhost ~ /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" , "Helvetica Neue" ,Helvetica,Arial,sans-serif;
     }
 
     #logo {
         margin-bottom: 40px;
     }
     < /style >
< /head >
<body>
     <img id = "logo" src= "logo.png" />
     <h1>Hello world!< /h1 >
             <h2>MySQL Server version: 5.5.38-0ubuntu0.14.04.1< /h2 >
     < /body >
< /html >

部署自己的 PHP 应用 。

默认的容器启动了一个 helloword 应用,我们可以使用 dockerfile 创建另外一个镜像来部署我们自己的应用程序,dockerfile 的详细语法将在后面章节介绍.

?
1
2
3
4
5
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 内容如下:

?
1
2
3
4
5
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" ]

再次启动自己的容器就完成部署了 。

?
1
2
3
4
5
core@localhost ~ /php $ docker stop  0ee
0ee
core@localhost ~ /php $ docker rm 0ee
0ee
core@localhost ~ /php $ docker run -d -p 8080:80 -p 3306:3306 dockerpool /my-lamp-app

使用 curl看下自己的应用程序是不是已经正确启动了吧.

curl http://localhost/ 。

在 php 程序中连接数据库 。

在容器中访问 mysql 数据库 。

这个镜像的 mysql 数据库有个默认的 root 用户,本地连接时可以不用密码,所以在代码访问非常简单.

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

在容器外部访问 mysql 数据库 。

当我们第一次以 tutum/lamp 镜像启动容器的时候,它会自动创建一个叫 admin 的 mysql 用户,并生成一个随机密码,使用「docker logs +容器ID」可以获取到这个密码.

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
core@localhost ~ /php $ docker logs 9cb
=> An empty or uninitialized MySQL volume is detected in /var/lib/mysql
=> Installing MySQL ...
=> Done!
=> Waiting 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 'root' has no password but only allows local connections
========================================================================

默认的 root 用户无法远程登陆,所以要使用 admin 用户,它同样具有 root 权限.

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持! 。

最后此篇关于Docker 搭建lamp应用实例详解的文章就讲到这里了,如果你想了解更多关于Docker 搭建lamp应用实例详解的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com