LNMP Docker 安装配置

目标:一条命令建立 LNMP 环境(MySQL、Redis、PHP-fpm、Nginx,etc)。这里只简单列举单容器运行方式。

实际请使用 Docker Composehttps://github.com/khs1994-docker/lnmp

GitHub:https://github.com/khs1994-docker/lnmp-quickstart

修订说明

  • 官方建议不再使用 --link,而是使用 Docker 容器网络来连接容器(服务,也即容器互通)。
  • 官方建议不再使用 -v 或者 --volume,而是使用 --mount Docker 17.06+

准备

$ git clone --depth=1 https://github.com/khs1994-docker/lnmp-quickstart

$ cd lnmp-quickstart

创建网络

$ docker network ls

$ docker network create -d bridge lnmp

创建 Volume

$ docker volume ls

$ docker volume create lnmp-mysql-data

MySQL

环境变量含义请到这里查看:https://github.com/docker-library/docs/tree/master/mysql

$ docker run -dit \
   --network lnmp \
   --name mysql \
   -p 3306:3306 \
   # 若只允许本地登录,可以加上监听的 IP,默认监听全部 IP
   # –p 127.0.0.1:3306:3306 \
   # 设置 root 密码  
   -e MYSQL_ROOT_PASSWORD=mytest \
   # 启动时新建一个数据库
   -e MYSQL_DATABASE=test \
   # -v lnmp-mysql-data:/var/lib/mysql \
   --mount source=lnmp-mysql-data,target=/var/lib/mysql \
   mysql

Redis

$ docker run -dit \
    --network lnmp \
    --name redis \
    -p 6379:6379 \
    redis:alpine

PHP7

php-fpm 官方镜像需要通过 Dockerfile 增加 PHP 扩展

增加扩展

编辑 Dockerfile 增加 PHP 扩展

FROM php:fpm-alpine3.6

RUN docker-php-ext-install pdo_mysql

RUN apk add --no-cache --virtual .build-deps $PHPIZE_DEPS \
      && pecl install redis \
      && docker-php-ext-enable redis \
      && apk del .build-deps

注意: 安装扩展可能需要依赖包,请使用 RUN apk add --no-cache PACKAGE_NAME 安装依赖。

构建镜像

$ docker build -t username/php:fpm-alpine3.6 .

运行容器

$ docker run -dit \
    --network lnmp \
    --name php7 \
    # -v $PWD/app:/app \
    --mount type=bind,source=$PWD/app,target=/app,readonly \
    username/php:fpm-alpine3.6

Nginx

$ docker run -dit \
    --network lnmp \
    -p 80:80 \
    -p 443:443 \
    --name nginx \
    # -v $PWD/app:/app \
    --mount type=bind,source=$PWD/app,target=/app,readonly \
    # -v $PWD/conf.d:/etc/nginx/conf.d \
    --mount type=bind,source=$PWD/conf.d,target=/etc/nginx/conf.d,readonly \
    nginx:alpine

测试 LNMP

$ docker ps -a

CONTAINER ID        IMAGE                         COMMAND                  CREATED              STATUS              PORTS                                      NAMES
e77477b89a65        nginx:alpine                  "nginx -g 'daemon of…"   3 seconds ago        Up 4 seconds        0.0.0.0:80->80/tcp, 0.0.0.0:443->443/tcp   nginx
e74dda1abdb8        username/php:fpm-alpine3.6    "docker-php-entrypoi…"   25 seconds ago       Up 26 seconds       9000/tcp                                   php7
55eb02c94a3a        redis:alpine                  "docker-entrypoint.s…"   46 seconds ago       Up 47 seconds       0.0.0.0:6379->6379/tcp                     redis
314d54410929        mysql                         "docker-entrypoint.s…"   About a minute ago   Up About a minute   0.0.0.0:3306->3306/tcp                     mysql

访问 127.0.0.1 看到 phpinfo 页面。

访问 127.0.0.1/redis.php 测试 PHP redis 扩展。

$ docker exec -it mysql mysql -uroot -pmytest

mysql> create database test;
Query OK, 1 row affected (0.00 sec)

访问 127.0.0.1/pdo-mysql.php 测试 PHP pdo_mysql 扩展。

docker-compose

请访问 khs1994-docker/lnmp 查看。

原创声明,本文系作者授权云+社区-专栏发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏电光石火

Shadowsocks多用户系统配置搭建-服务器端(manyuser)

一台新的VPS,如何搭建shadowsocks多用户后端+whmcs前端?曾经折腾失败,最近又重新折腾了许久终于成功,把过程记录一下。我的环境是centos...

7238
来自专栏hotqin888的专栏

docker升级,docker更新boot2docker.iso,镜像丢失,加速器

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/hotqin888/article/det...

1032
来自专栏Hadoop实操

4. 如何为Hive配置OpenLDAP认证

在前面的文章Fayson讲了《1.如何在CentOS6.5安装OpenLDAP并配置客户端》、《2.OpenLDAP集成SSH登录并使用SSSD同步用户》以及《...

4475
来自专栏小狼的世界

WAMP环境配置

经过以上的步骤,一个 WAMP 的开发环境就配置好了,基本上能够满足开发一般应用的需要。

964
来自专栏姚俊刚的专栏

在腾讯云服务器上体验 Docker

在腾讯云的 ubuntu 服务器上安装和运行 Docker,Docker可以解决虚拟机能够解决的问题,同时也能够解决虚拟机由于资源要求过高而无法解决的问题。

5.7K1
来自专栏编程

Sublime Text的安装与配置

1.下载Sublime Text安装包,双击安装程序进行安装; 2.安装Package Control,Ctrl+~打开控制台,选择相应版本的代码粘贴(如图所示...

1848
来自专栏pangguoming

Sonar本地环境搭建

一个新项目准备上线提测了,为了在提测之前做一下代码走查,同时了解项目目前的质量情况,就在本地搭建了一套sonar环境。搭建的过程中遇到了很多问题,sonar官方...

2847
来自专栏跟着阿笨一起玩NET

C#.bat文件清理工程目录

461
来自专栏Hadoop实操

如何编译适用于CDH的Tez版本并集成Kerberos环境的Hive2

在上一篇文章Fayson介绍了《非Kerberos环境下Hive2.2.0 On Tez集成》,使用Apache官网默认编译好的0.8.5版本的Tez,默认的版...

712
来自专栏Jerry的SAP技术分享

将Java应用部署到SAP云平台neo环境的两种方式

Eclipse里选择要部署的项目,右键->Run as Server, 选择上一步创建的Server即完成部署。

1752

扫码关注云+社区