• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
导航菜单
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • windows
  • 服务器硬件
  • 服务器运维
  • 云计算
  • 虚拟化
  • IIS教程
  • Linux
  • Apache
  • Ftp
  • DNS
  • Nginx
您的位置:首页 > 服务器 >虚拟化 > 利用docker搭建LAMP运行环境教程详解

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

作者: 字体:[增加 减小] 来源:互联网

本文主要包含docker,lamp环境搭建,docker,搭建lamp,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能有所帮助,如果有疑问大家可以留言交流。

您可能感兴趣的文章:

  • Docker 搭建 Tomcat 运行环境的方法
  • 搭建基于Docker的PHP开发环境的详细教程
  • Docker快速入门以及环境配置详解
  • 在CentOS 7上安装Docker环境的方法与注意事项
  • 利用docker搭建php7和nginx运行环境全过程(官方镜像)
  • Docker 如何布置PHP开发环境
  • Docker + Nodejs + Kafka + Redis + MySQL搭建简单秒杀环境
  • Docker搭建 Nginx+PHP+MySQL 环境并部署WordPress实践
  • Mac系统上用Docker搭建lamp环境
  • 利用Docker搭建本地https环境的完整步骤
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • Docker实践8:Compose,docker实践compose
  • Docker buildx构建多平台镜像并推送到私有仓库的方法
  • Docker三个基本概念镜像(Image)容器(Container)仓库(Repository)
  • 什么是Docker?为什么要使用Docker
  • docker 开源的应用容器引擎
  • 如何给docker设置http代理
  • docker官方mysql镜像自定义配置详解
  • 详解Docker数据管理(数据卷&数据卷容器)
  • 如何利用Docker容器实现代理转发与数据备份详解
  • 详解Docker Swarm 在持续集成测试中的应用

相关文章

  • Docker如何多步构建生成dubbo-admin镜像详解
  • Docker 搭建 Tomcat 运行环境的方法
  • 解决docker数据文件过大导致根磁盘满的问题
  • 基于Docker安装与部署Zabbix
  • Docker 数据管理Named volume详解
  • Docker Volumn容器间共享数据的实现
  • docker如何使用阿里加速器的方法
  • 使用VMware为centos添加硬盘
  • 使用dockerfile构建nginx镜像的方法示例
  • docker容器启动后添加端口映射

文章分类

  • windows
  • 服务器硬件
  • 服务器运维
  • 云计算
  • 虚拟化
  • IIS教程
  • Linux
  • Apache
  • Ftp
  • DNS
  • Nginx

最近更新的内容

    • Docker下搭建一个JAVA Tomcat运行环境的方法
    • Docker中的镜像详细介绍
    • 从0开始了解Docker入门(小结)
    • Ubuntu VMware出现提示No 3D support is available的解决方法
    • 详解从 0 开始使用 Docker 快速搭建 Hadoop 集群环境
    • Docker出现Cannot connect to the Docker daemon. Is the docker daemon running on this host错误解决办法
    • 详解vmware14Pro中ubuntu系统界面太小的问题解决
    • ubuntu17.10安装docker-ce的方法
    • Docker-compose的安装和设定详细步骤
    • VMWare Workation双网卡配置IP地址的图文教程

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有