摘要:整个环境的结构是,为多带带容器做方向代理并配置协议和在同一个容器配合组件化开发的为一个多带带容器与分别为多带带容器。
整个环境的结构是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
composerFROM php:7.1.0
更新apt-getRUN apt-get update
安装gitRUN apt-get -qqy install git
把composer从官网拉下来RUN php -r "copy("https://getcomposer.org/insta...", "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 https://packagist.phpcomposer...
在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-apache2FROM ubuntu:16.04
更新apt-get镜像源RUN apt-get update
安装curlRUN apt-get -qqy install curl
安装Apache2RUN apt-get -qqy install apache2
安装phpRUN apt-get -qqy install php
安装libapache2-mod-phpRUN apt-get -qqy install libapache2-mod-php
安装php-mysqlRUN apt-get -qqy install php-mysql
安装php-gdRUN apt-get -qqy install php-gd
端口开放80EXPOSE 80
前台运行Apache,有错误会将日志写入docker logCMD ["/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
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
nginxFROM 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
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
服务器命令运行
docker run --rm --name composer -v /var/www:/var/www -it 8a14 /bin/bash
php-apachedocker 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
docker run -d --name nginx -p 80:80 -p 443:443 --link chaoniuapi1 --link chaoniu1 --link chaoniurank1 xdh/nginx:1.1
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/26878.html
摘要:如果不用我们可能将上述讲的命令每搭建一次就需要执行一遍,有没有能统一管理的有,就是在环境搭建中的作用快速创建镜像,快速创建并运行容器,实现统一管理。 前言 初学者在dcoker学习过程中,可能不太清楚docker中那么多的命令,参数,工具在lnmp环境搭建中起了什么作用,下面跟着我来熟悉一下。(本文面向的是不怎么熟悉linux的:phper) 镜像,容器,仓库 镜像:Docker 镜像...
摘要:原文链接目标一条命令建立环境,。这里只简单列举单容器运行方式,实际请使用。修订说明官方建议不再使用,而是使用容器网络来连接容器服务,也即容器互通。构建镜像运行容器测试访问看到页面。访问测试扩展。请访问查看。 原文链接:https://www.khs1994.com/docke... 目标:一条命令建立 LNMP 环境(MySQL、Redis、PHP-fpm、Nginx,etc)。这里只...
摘要:构建配置其它代码启动启动后,用数据连接工具测试,链接地址树莓派端口用户名密码到此为止,属于你自己的工作环境已经做好了。 普通PC环境也可以用以下配置,只是MYSQL那里换回mysql官方版本就可以。 Docker 安装 $ curl -sSL get.docker.com | sudo sh 工作目录 /lnmp/conf 存放虚拟主机配置/lnmp/data/mysql 存放mys...
摘要:构建配置其它代码启动启动后,用数据连接工具测试,链接地址树莓派端口用户名密码到此为止,属于你自己的工作环境已经做好了。 普通PC环境也可以用以下配置,只是MYSQL那里换回mysql官方版本就可以。 Docker 安装 $ curl -sSL get.docker.com | sudo sh 工作目录 /lnmp/conf 存放虚拟主机配置/lnmp/data/mysql 存放mys...
摘要:基础命令关于搜索下载查看或者删除单个删除多个删除查看信息占用关于查看重启停止杂项命令网络相关清除网络缓存查看网络列表查看详情挂载目录清除缓存查看列表查看详情系统相关系统信息查看占用清除所有包含构建失败的镜像没有被使用的网络配 docker基础命令 关于images 搜索 docker search php 下载 docker pull php:7.3.6-fpm-alpine3....
阅读 464·2021-10-09 09:57
阅读 468·2019-08-29 18:39
阅读 809·2019-08-29 12:27
阅读 3026·2019-08-26 11:38
阅读 2665·2019-08-26 11:37
阅读 1284·2019-08-26 10:59
阅读 1374·2019-08-26 10:58
阅读 989·2019-08-26 10:48