博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
docker lnmp
阅读量:6179 次
发布时间:2019-06-21

本文共 4063 字,大约阅读时间需要 13 分钟。


整个环境的结构是lnamp,nginx为单独容器做方向代理并配置HTTPS协议,Apache和PHP在同一个容器,配合PHP组件化开发的composer为一个单独容器,Redis与Mysql分别为单独容器。


镜像版本:


  • Ubuntu:16.04(上面跑Apache-PHP)

  • PHP:7.1.0(上面跑Composer)

  • Mysql:8.0

  • Redis:3.2.6

  • Nginx:latest


这些镜像拉下来以后首先配置composer的容器:

DockerFile

composer

FROM php:7.1.0

更新apt-get

RUN apt-get update

安装git

RUN apt-get -qqy install git

把composer从官网拉下来

RUN php -r "copy('', 'composer-setup.php');"

验证这个composer是否是正版可用的

RUN php -r "if (hash_file('SHA384', 'composer-setup.php') === '55d6ead61b29c7bdee5cccfb50076874187bd9f21f65d8991d46ec5cc90518f447387fb9f76ebae1fbbacf329e583e30') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"

运行composer安装程序

RUN php composer-setup.php --install-dir=/bin --filename=composer

删除composer安装程序

RUN php -r "unlink('composer-setup.php');"

将composer的镜像源替换成国内的

RUN composer config -g repo.packagist composer

在composer的Dockerfile目录下编译img镜像

docker build -t xdh/composer:1.0 .

完成以后可以运行命令进去查看一下,看看composer是否可以正常运行:

docker run --rm --name composer -it 容器ID /bin/bash

然后配置Ubuntu的Apache和PHP环境:

DockerFile

php-apache2

FROM ubuntu:16.04

更新apt-get镜像源

RUN apt-get update

安装curl

RUN apt-get -qqy install curl

安装Apache2

RUN apt-get -qqy install apache2

安装php

RUN apt-get -qqy install php

安装libapache2-mod-php

RUN apt-get -qqy install libapache2-mod-php

安装php-mysql

RUN apt-get -qqy install php-mysql

安装php-gd

RUN apt-get -qqy install php-gd

端口开放80

EXPOSE 80

前台运行Apache,有错误会将日志写入docker log

CMD ["/usr/sbin/apachectl","-D","FOREGROUND"]

在php-Apache的Dockerfile目录下编译img镜像

docker build -t xdh/php-apache2:1.0 .

完成以后可以将端口转发到宿主机查看一下,看看容器内部的Apache和PHP是否可以正常运行:

docker run --rm -d -p 80:80 -v /var/www:/var/www/html xdh/php-apache2:1.0

之后配置Redis和Mysql容器将他们实现互连:

docker run --name redis-server -d -P redis:3.2.6

docker run --name mysql -d -P -e MYSQL_ROOT_PASSWORD=你的密码 mysql:8.0
docker run --name apache-php -d -v /var/www:/var/www -v ${HOME}/docker/apache/etc/apache2/sites-available:/etc/apache2/sites-available --link mysql:mysql --link redis-server:redis-server xdh/php-apache2:1.0

mac下需要下面这个命令

docker run --name apache-php -d -v ${HOME}/docker/var/www:/var/www -v ${HOME}/docker/apache/etc/apache2/sites-available:/etc/apache2/sites-available --link mysql:mysql --link redis-server:redis-server xdh/php-apache2:1.0

完成以后可以将端口转发到宿主机查看一下,看看容器内部的Apache和PHP是否可以正常运行:

docker run --rm -d -p 80:80 -v /var/www:/var/www/html xdh/php-apache2:1.0
然后配置Nginx:

DockerFile

nginx

FROM nginx:latest

WORKDIR /etc/nginx
ADD cert cert/
ADD conf.d/chaoniu.conf conf.d/chaoniu.conf
VOLUME /etc/nginx/conf.d
RUN mkdir /var/www
EXPOSE 80
EXPOSE 443
CMD ["nginx","-g","daemon off;"]
在nginx的Dockerfile目录下编译img镜像

docker build -t xdh/nginx:1.0 .

之后配置Redis和Mysql容器将他们实现互连:

docker run --name redis-server -d -P redis:3.2.6

docker run --name mysql -d -P -e MYSQL_ROOT_PASSWORD=你的密码 mysql:8.0
docker run --name apache-php -d -v /var/www:/var/www -v ${HOME}/docker/apache/etc/apache2/sites-available:/etc/apache2/sites-available --link mysql:mysql --link redis-server:redis-server xdh/php-apache2:1.0

mac下需要下面这个命令

docker run --name apache-php -d -v ${HOME}/docker/var/www:/var/www -v ${HOME}/docker/apache/etc/apache2/sites-available:/etc/apache2/sites-available --link mysql:mysql --link redis-server:redis-server xdh/php-apache2:1.0

docker run -d --name nginx -p 8080:80 -p 443:443 -v ${HOME}/docker/nginx/etc/nginx/conf.d:/etc/nginx/conf.d --link apache-php xdh/nginx:1.0

服务器命令运行

composer

docker run --rm --name composer -v /var/www:/var/www -it 8a14 /bin/bash

php-apache

docker run --name chaoniu1 -d -v /var/www:/var/www --link redis-server:redis-server xdh/php-apache2:1.4

docker run --name chaoniuapi1 -d -v /var/www:/var/www --link redis-server:redis-server xdh/php-apache2:1.4
docker run --name chaoniurank1 -d -v /var/www:/var/www --link redis-server:redis-server xdh/php-apache2:1.4
docker run --rm --name chaoniurank2 -it -v /var/www:/var/www --link redis-server:redis-server xdh/php-apache2:1.4 /bin/bash

nginx

docker run -d --name nginx -p 80:80 -p 443:443 --link chaoniuapi1 --link chaoniu1 --link chaoniurank1 xdh/nginx:1.1

转载地址:http://xjdda.baihongyu.com/

你可能感兴趣的文章
第十九章:集合视图(十七)
查看>>
BIOS
查看>>
Elasticsearch之元数据(meta-fields)介绍
查看>>
基于Django+Bootstrap框架,可视化展示内存监控信息
查看>>
Pytorch | BERT模型实现,提供转换脚本【横扫NLP】
查看>>
biostar handbook: 第七周笔记汇总+调整通知
查看>>
涨薪必备|给你一份超详细Spring Boot知识清单
查看>>
YII2 关联查询,不修改search, 使用 GridView::widget 输出
查看>>
DNS服务-了解篇
查看>>
Apache Shiro在web开发安全技术中的应用
查看>>
源码安装MySQL 5.1 GA
查看>>
苹果电脑获取Android Studio的发布版SHA1和开发版SHA1
查看>>
How to troubleshooting RAC Vip Problem
查看>>
jar 命令 打包装class文件的文件夹
查看>>
CentOS 7.2 部署Saltstack
查看>>
centos7下安装MPlayer
查看>>
docker容器中安装vim
查看>>
smokeping 监控
查看>>
NTB EEPROM设置与跨节点数据传输
查看>>
IEEE 802.1Q Tunneling
查看>>