docker搭建lnmp(一)

因为安装过程中涉及到一些修改配置文件的步骤,由于刚尝试不太会,所以这里都是通过安装好后,进入容器修改配置,最后退出重启容器。

目录结构

docker
├── mysql
│   └── dockerfile
├── nginx  
│   └── dockerfile
└── php7
    └── dockerfile

分别生成3个镜像

sudo docker build -t lemon/mysql  .

sudo docker build -t lemon/php .

sudo docker build -t lemon/nginx .

构建三个容器

需要注意的2个关键点

1.要用到link命令来连接个个容器

2.通过数据卷 使php-fpm和nginx的工作目录指向同一目录 

$HOME/web:/usr/local/nginx/html
#设置root密码123456
sudo
docker run --name mysql -d -p 3306:3306 -v $HOME/docker/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 lemon/mysql
#以下关键命令 --link
#--link 连接mysql
sudo docker run --name php -d -p 9000:9000 -v $HOME/web:/usr/local/nginx/html --link mysql:mysql lemon/php
#--link 连接php
sudo docker run --name nginx -d -p 80:80 -v $HOME/web:/usr/local/nginx/html --link php:php lemon/nginx

进入nginx容器

sudo docker exec -it nginx bash

修改conf文件

location ~ .php$ {
            root           html;
            #关键 - php容器的9000端口 
            fastcgi_pass   php:9000;
            fastcgi_index  index.php;
            fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
            include        fastcgi_params;
        }

进入php容器

sudo docker exec -it php bash

分别修改www.conf

#监听所有9000端口
listen = 127.0.0.1 
改为
listen = [::]:9000

修改php.ini

#增加swoole
extension = swoole.so

#增加opcache配置
[Zend Opcache]
zend_extension=/usr/local/php7/lib/php/extensions/no-debug-non-zts-20160303/opcache.so
opcache.enable=1
opcache.enable_cli=1
opcache.memory_consumption=528
opcache.interned_strings_buffer=8
opcache.max_accelerated_files=10000
opcache.revalidate_freq=0
opcache.fast_shutdown=1

退出容器,重启即可

sudo docker restart nginx
sudo docker restart php

在$HOME/web 目录下新增 php文件, 通过 127.0.0.1/inde.php 可以成功访问。

dockerfile 文件:http://files.cnblogs.com/files/loveyouyou616/docker.tar.gz

原文地址:https://www.cnblogs.com/loveyouyou616/p/6882252.html