docker:搭建lamp应用

(原文http://blog.csdn.net/smallfish1983/article/details/40108999?utm_source=tuicool)

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

从网站上 pull 一个 lamp 镜像

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

[email protected] ~/base $ docker pull tutum/lamp
Pulling repository tutum/lamp
4b32789c7d66: Download complete
...

使用默认方式启动 lamp 容器

[email protected] ~/base $ docker run -d -p 8080:80 -p 3306:3306 tutum/lamp
#启动应用并映射 8080 端口和 3306 端口
0ee00c97a5cdefb985baf826c16723f333aa5edddee4072a5107c724ad09f10d
[email protected] ~/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
[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","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 的详细语法将在后面章节介绍。

[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"]

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

[email protected] ~/php $ docker stop    0ee
0ee
[email protected] ~/php $ docker rm 0ee
0ee
[email protected] ~/php $ docker run -d -p 8080:80 -p 3306:3306 dockerpool/my-lamp-app

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

curl http://localhost/

在 php 程序中连接数据库

在容器中访问 mysql 数据库

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

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

在容器外部访问 mysql 数据库

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

[email protected] ~/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 权限。

时间: 2024-10-06 10:54:48

docker:搭建lamp应用的相关文章

使用docker搭建LAMP环境

环境:Centos7.4[[email protected] ~]# cat /etc/redhat-releaseCentOS Linux release 7.4.1708 (Core) Get the most up-to-date version of Dockerhttps://get.docker.com (This script is meant for quick & easy install via:)[[email protected] ~]# curl -fsSL https

Docker下lamp环境部署!!!

项目背景: 在我们的web项目开发过程.软件测试环境.项目上线环境中我们经常需要搭建lamp环境,你可能不想每个应用场景都去搭建一个lamp环境,这个时候我们可以利用docker(容器)去把我们从繁琐的环境中解放出来,让我们更倾向于业务本身. 实验环境: vmware workstation 11 centos7.0的系统下 服务器:ip:192.168.0.33 SecureCRT (ssh远程连接软件) docker-1.8.2-10.el7.centos.x86_64 软件介绍: 下面是两

记第一次用Linux搭建LAMP环境

本文为日记,并非技术博客. 嗯,没错,我决定学习linux系统了.虽然不是第一次接触命令行,不过还是挺有压力的.看了两天的Linux基础视频就开始动手搭建自己的LAMP环境. 关于为什么开始接触Linux呢,主要是最近一直在学前端的知识,想换换口味....以前自己写的小网站也都是用windows下的IIS发布的,所以心血来潮决定试试搭建一个Linux的WEB服务器.既然搭建的是WEB服务器,那么首选自然是LAMP环境,也就是Linux+apache+mysql+php啦.至于为什么是LAMP,当

Docker 搭建 Tomcat 运行环境

使用 Docker 搭建 Tomcat 运行环境 1. Docker与虚拟机的区别 2 搭建过程 2.1 准备宿主系统 准备一个 CentOS 7操作系统,具体要求如下: · 必须是 64 位操作系统 · 建议内核在 3.8 以上 查看 CentOS 7系统内核: [[email protected] ~]# uname  -r 3.10.0-327.el7.x86_64 2.2 安装Docker [[email protected] ~]# yum  -y   install   docker

在 Docker 搭建 Maven 私有库

在 Docker 搭建 Maven 私有库 小引 If you are developing software without a repository manager you are likely missing a number of opportunities to reduce some pretty obvious inefficiencies. If everyone on your team has to hit public repositories like the Centr

?搭建LAMP环境及快速部署双网站并实现基于域名的虚拟主机

本节所讲内容: 实战:搭建LAMP环境及快速部署双网站并实现基于域名的虚拟主机 LAMP架构:??? Linux+Apache+Mysql+PHP Linux+Apache+Mysql/MariaDB+Perl/PHP/Python一组常用来搭建动态网站或者服务器的开源软件,共同组成了一个强大的Web应用程序平台. 一.安装需要的软件包 [[email protected] ~]# yum install httpd mysql-server mysql php php-mysql  -y ht

64位CentOS 6.5下搭建LAMP环境详细步骤

1.确认搭建LAMP所需的环境是否已经安装: [[email protected] ~]#rpm -q make gcc gcc-c++ zlib-devel libtool libtool-ltdl libtool-ltdl-devel bisonncurses-devel 备注:安装libpng时需要zlib-devel           安装php时需要libtool.libtool-ltdl.libtool-ltdl-devel           安装mysql时需要bison.nc

ubuntu server 14.04 LTS下搭建LAMP环境之最详细笔记之一U盘安装双系统

前言: 一直在WIN上使用PHP,不喜欢用WAMP,每次都是手动在windows配置环境,偶尔有一次装了小红帽玩了两天,感觉不是很习惯就换了回来,过了没几天见讨论LAMP环境,于是安装了ubuntu的desktop版本.安装好了环境使用了一下感觉也没有多大的意思,因为那一段时间没有怎么使用PHP,就这样又忽略掉了这一次学习的机会,直到上周日朋友最近在学习这方面的知识,说是要将一个老式电脑安装一个linux来玩玩.本文原创博客地址:http://www.cnblogs.com/unofficial

Centos 6.4搭建LAMP

网上关于LAMP的文章很多,但是一部分因为系统环境或软件升级原因不能使用或者有一些小小的问题,本文由网上资料整理得出,在centos6.4及6.2系统上经过验证,如有问题可以留言大家相互讨论,本人新手,希望能够一起学习进步. 需要软件列表 apr-1.5.0.tar.bz2 apr-util-1.5.3.tar.bz2 zlib-1.2.8.tar.gz pcre-8.34.tar.gz httpd-2.4.9.tar.gz php-5.5.6.tar.gz mysql-5.5.25.tar.g

centos5.9使用RPM包搭建lamp平台

1.环境介绍 os:oracle centos 5.9 apache:httpd-2.2.3-74.0.1.el5 php:php53-5.3.3-13.el5_8 mysql:mysql-server-5.0.95-3.el5 2.安装过程 # yum install -y httpd # service httpd start # yum install -y mysql-server # service mysqld start # yum install -y php53 # yum -