docker搭建lnmp(一)

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

目录结构

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

分别生成3个镜像

sudo docker build -t lemon/mysql  -f ~/docker/mysql/dockerfile
sudo docker build -t lemon/php    -f ~/docker/php7/dockerfile
sudo docker build -t lemon/nginx  -f ~/docker/nginx/dockerfile

构建三个容器

需要注意的2个关键点

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

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

$HOME/web:/usr/local/nginx/html
#设置root密码123456sudo 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

时间: 2024-10-16 00:44:34

docker搭建lnmp(一)的相关文章

docker搭建lnmp环境

入门参考 http://www.runoob.com/docker/docker-install-nginx.html 十大常用命令玩转docker 1. #从官网拉取镜像 docker pull <镜像名:tag> 如:docker pull centos(拉取centos的镜像到本机) 2.#搜索在线可用镜像名 docker search <镜像名> 如:docker search centos( 在线查找centos的镜像) 3.#查询所有的镜像,默认是最近创建的排在最上 d

docker搭建 LNMP 环境

一.准备镜像安装完docker后,更换完镜像源(docker的安装十分简单自行百度即可)打开/etc/docker目录下的daemon.json添加以下内容 {"registry-mirrors": ["https://o3niohlb.mirror.aliyuncs.com"]} docker工作的基础即是镜像,可以认为镜像是一个独立的由应用组成的虚拟机重启docker服务 service docker restart docker pull nginx:alpi

用Docker搭建LNMP

程序员经常会说的一句话:在我的机器上是正常的,肯定是你的机器有问题.因此,Docker诞生了,它把应用所需要的一切东西都打包,从而可以很方便地进行部署. Docker 的主要用途,目前有三大类: 提供一次性的环境.比如,本地测试他人的软件.持续集成的时候提供单元测试和构建的环境. 提供弹性的云服务.因为 Docker 容器可以随开随关,很适合动态扩容和缩容. 组建微服务架构.通过多个容器,一台机器可以跑多个服务,因此在本机就可以模拟出微服务架构. 下面开始来体验Docker,操作系统为win10

Mac下docker搭建lnmp环境 + redis + elasticsearch

之前在windows下一直使用vagrant做开发, 团队里面也是各种开发环境,几个人也没有统一环境,各种上线都是人肉,偶尔还会有因为开发.测试.生产环境由于软件版本或者配置不一致产生的问题, 今年准备持续玩玩docker+kubernetes下的敏捷开发模式(当然还有其它:如持续集成) 备忘下第一步,环境搭建 拉取镜像 nginx docker pull hub.c.163.com/library/nginx:latest 拉取镜像 mysqldocker pull hub.c.163.com

基于Docker搭建LNMP环境(转)

关于什么是docker,建议大家先上网查查有关的用法.如果您不了解,在这篇文章中,您可以简单的理解为他是一个轻量级的虚拟机. 一.docker安装mysql 首先,我们从仓库拉取一个MySql的镜像 docker pull mysql:5.6 然后我们可以通过命令 docker images 查看我们刚刚拉下来的mysql的镜像 接下来,我们就开始运行并启动一个容器,通过以下命令 docker run -d -p 3307:3306 -e MYSQL_ROOT_PASSWORD=xy123456

用Docker构建LNMP环境(上)

利用docker搭建lnmp环境(上) 小知识: docker镜像运行之后变成容器(docker run) Registry 是Docker镜像的中央存储仓库(pull/push) https://git.oschina.net/                    #从这个地方拉取git的仓库 1.源码克隆到自己的linux服务器上 [[email protected] ~]# git clone https://git.oschina.net/xxsl/docker-training.gi

搭建lnmp环境,部署php动态网站

搭建LNMP 前言:"N"代表Nginx与apache的作用一样,都是为了搭建网站服务器,由俄罗斯人lgor sysoev开发,其特点是占有内存少,并发能力强,单台物理服务器可支持3万-5万个并发请求,中国使用nginx网站用户有:百度.京东.新浪.网易.腾讯.淘宝等. 通过下面的实验搭建LNMP环境,部署天空影城的php动态网站 本实验在虚拟机中运行,使用Redhat6.5系统部署! 一.安装及运行 1.搭建yum仓库,安装支持软件 nginx的配置及运行需要pcre,zlib等软件

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