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

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 容器

"lang-bash">core@localhost ~/base $ docker run "hljs-operator">-d -p : -p : tutum/lamp

ee00c97a5cdefb985baf826c16723f333aa5edddee4072a5107c724ad09f10d
core@localhost ~/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
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 "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能有所帮助,如果有疑问大家可以留言交流。

(0)

相关推荐

  • 详解mac下通过docker搭建LEMP环境

    在mac下通过docker搭建LEMP环境境 1.安装virtualbox.由于docker是在lxc环境的容器 2.安装boot2docker,用于与docker客户端通讯 > brew update > brew install docker > brew install boot2docker 3.初始化boot2docker,也就是在virtualbox上安装一个docker的host环境 boot2docker init 此时会下载一个镜像 4.启动虚拟机host :~$ bo

  • Docker 搭建lamp应用实例详解

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

  • Mac系统上用Docker搭建lamp环境

    前言 docker终于出来mac版本了,赶紧去下载,安装步骤,以前没有Mac版本的时候还要装docker toolbox,现在直接下载安装就好了. 安装好了的样子 状态栏 docker的提示 这个时候就可以到终端里面输入docker命令 $ docker --version Docker version 1.13.0-rc3, build 4d92237 $ docker-compose --version docker-compose version 1.9.0, build 2585387

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

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

  • Windows server 2008搭建php运行环境图文详解(php5.3)

    下载php组件包 首先到http://windows.php.net/download/下载你需要的php版本,这里我下载的是php5.3. 下面解压php组件 包到磁盘上. 安装Microsoft Visual C++ 2008 SP1 可再发行组件包 x86 版 在地址http://www.microsoft.com/zh-cn/download/details.aspx?id=5582下载安装Microsoft Visual C++ 2008 SP1 可再发行组件包 x86版.注意,这里下

  • CentOS7环境下使用Docker搭建PHP运行环境的过程详解

    相关文章: CentOS7下使用yum安装Docker Win10环境下使用Docker搭建PHP运行环境 1.创建私有网络 docker network create lnmp 私有网络创建成功: 2.安装Nginx 镜像地址:https://hub.docker.com/_/nginx?tab=tags 可以安装最新版Nginx,这里通过搜索标签,拉取 Nginx1.18.0 镜像: docker pull nginx:1.18.0 使用 docker images 命令查看 安装Nginx

  • go语言入门环境搭建及GoLand安装教程详解

    Go(又称 Golang)是 Google 的 Robert Griesemer,Rob Pike 及 Ken Thompson 开发的一种静态强类型.编译型语言.Go 语言语法与 C 相近,但功能上有:内存安全,GC(垃圾回收),结构形态及 CSP-style 并发计算. Go is an open source programming language that makes it easy to build simple, reliable, and efficient software.

  • Docker 搭建 Tomcat 运行环境的方法

    Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化.容器是完全使用沙箱机制,相互之间不会有任何接口. 1 Docker与虚拟机   2 搭建过程 2.1 准备宿主系统 准备一个 CentOS 7操作系统,具体要求如下: 必须是 64 位操作系统 建议内核在 3.8 以上 通过以下命令查看您的 CentOS 内核: # uname -r 2.2 安装Docker # yum install d

  • 如何在python开发工具PyCharm中搭建QtPy环境(教程详解)

    在Python的开发工具PyCharm中安装QtPy5(版本5):打开"File"--"Settings"--"Project Interpreter",点击窗口中右侧点添加按钮,然后在弹出的窗口添加PyQt5模块包,单击Install Package按钮,如图所示: 安装好安装PyQt5后,需要用同样的方法安装pyqt5-tools,安装PyQt5后没有designer.exe就是因为没有安装pyqt5-tools.安装好PyQt5后,desi

  • Windows配置VSCode+CMake+Ninja+Boost.Test的C++开发环境(教程详解)

    平时习惯了在Linux环境写C++,有时候切换到Windows想继续在同一个项目上工作,重新配置环境总是很麻烦.虽然Windows下用Visual Studio写C++只需要双击个图标,但我还是想折腾一下VS Code的环境配置.原因主要有两点:一是个人习惯上各种语言都在VS Code里面写,利用Git同步代码可以很方便地在不同平台开发同一个项目:二是有些情形下无法使用图形化界面,比如为Git配置CI(持续性集成)时显然不能用Visual Studio这个图形化的IDE来执行Windows环境的

  • 基于docker 搭建Prometheus+Grafana的过程详解

    一.介绍Prometheus Prometheus(普罗米修斯)是一套开源的监控&报警&时间序列数据库的组合,起始是由SoundCloud公司开发的.随着发展,越来越多公司和组织接受采用Prometheus,社会也十分活跃,他们便将它独立成开源项目,并且有公司来运作.Google SRE的书内也曾提到跟他们BorgMon监控系统相似的实现是Prometheus.现在最常见的Kubernetes容器管理系统中,通常会搭配Prometheus进行监控. Prometheus基本原理是通过HTT

  • Mac下快速搭建PHP开发环境步骤详解

    最近做了一个后端的项目,是用PHP+MySQL+Nginx做的,所以把搭建环境的方法简单总结一下. 备注: 物料:Apache/Nginx+PHP+MySQL+MAMPMac OS 10.12.1 自带Apache,Nginx和PHP 1.运行Apache 查看Apache版本,在终端根目录输入如下命令: sudo apachectl -v 终端会输出Apache的版本及built时间 Server version: Apache/2.4.23 (Unix) Server built:   Au

  • linux下安装python3和对应的pip环境教程详解

    1.下载python3.6的安装包: wget https://www.python.org/ftp/python/3.6.0/Python-3.6.0.tgz 2.解压后,进入到解压目录下,执行如下命令,将python3.6进行编译,如下是将python的环境编译到/usr/local/python3的目录下,注意先创建该目录: ./configure –prefix=/usr/local/python3 3.安装 make make install 4.安装完成后,为了使用方便,创建软连接:

随机推荐