摘要:整個環(huán)境的結(jié)構(gòu)是,為多帶帶容器做方向代理并配置協(xié)議和在同一個容器配合組件化開發(fā)的為一個多帶帶容器與分別為多帶帶容器。
整個環(huán)境的結(jié)構(gòu)是lnamp,nginx為多帶帶容器做方向代理并配置HTTPS協(xié)議,Apache和PHP在同一個容器,配合PHP組件化開發(fā)的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從官網(wǎng)拉下來RUN php -r "copy("https://getcomposer.org/insta...", "composer-setup.php");"
驗(yàn)證這個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;"
運(yùn)行composer安裝程序RUN php composer-setup.php --install-dir=/bin --filename=composer
刪除composer安裝程序RUN php -r "unlink("composer-setup.php");"
將composer的鏡像源替換成國內(nèi)的RUN composer config -g repo.packagist composer https://packagist.phpcomposer...
在composer的Dockerfile目錄下編譯img鏡像
docker build -t xdh/composer:1.0 .
完成以后可以運(yùn)行命令進(jìn)去查看一下,看看composer是否可以正常運(yùn)行:
docker run --rm --name composer -it 容器ID /bin/bash
然后配置Ubuntu的Apache和PHP環(huán)境:
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
前臺運(yùn)行Apache,有錯誤會將日志寫入docker logCMD ["/usr/sbin/apachectl","-D","FOREGROUND"]
在php-Apache的Dockerfile目錄下編譯img鏡像
docker build -t xdh/php-apache2:1.0 .
完成以后可以將端口轉(zhuǎn)發(fā)到宿主機(jī)查看一下,看看容器內(nèi)部的Apache和PHP是否可以正常運(yùn)行:
docker run --rm -d -p 80:80 -v /var/www:/var/www/html xdh/php-apache2:1.0
之后配置Redis和Mysql容器將他們實(shí)現(xiàn)互連:
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
完成以后可以將端口轉(zhuǎn)發(fā)到宿主機(jī)查看一下,看看容器內(nèi)部的Apache和PHP是否可以正常運(yùn)行:
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容器將他們實(shí)現(xiàn)互連:
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
服務(wù)器命令運(yùn)行
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
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/26878.html
摘要:如果不用我們可能將上述講的命令每搭建一次就需要執(zhí)行一遍,有沒有能統(tǒng)一管理的有,就是在環(huán)境搭建中的作用快速創(chuàng)建鏡像,快速創(chuàng)建并運(yùn)行容器,實(shí)現(xiàn)統(tǒng)一管理。 前言 初學(xué)者在dcoker學(xué)習(xí)過程中,可能不太清楚docker中那么多的命令,參數(shù),工具在lnmp環(huán)境搭建中起了什么作用,下面跟著我來熟悉一下。(本文面向的是不怎么熟悉linux的:phper) 鏡像,容器,倉庫 鏡像:Docker 鏡像...
摘要:原文鏈接目標(biāo)一條命令建立環(huán)境,。這里只簡單列舉單容器運(yùn)行方式,實(shí)際請使用。修訂說明官方建議不再使用,而是使用容器網(wǎng)絡(luò)來連接容器服務(wù),也即容器互通。構(gòu)建鏡像運(yùn)行容器測試訪問看到頁面。訪問測試擴(kuò)展。請?jiān)L問查看。 原文鏈接:https://www.khs1994.com/docke... 目標(biāo):一條命令建立 LNMP 環(huán)境(MySQL、Redis、PHP-fpm、Nginx,etc)。這里只...
摘要:構(gòu)建配置其它代碼啟動啟動后,用數(shù)據(jù)連接工具測試,鏈接地址樹莓派端口用戶名密碼到此為止,屬于你自己的工作環(huán)境已經(jīng)做好了。 普通PC環(huán)境也可以用以下配置,只是MYSQL那里換回mysql官方版本就可以。 Docker 安裝 $ curl -sSL get.docker.com | sudo sh 工作目錄 /lnmp/conf 存放虛擬主機(jī)配置/lnmp/data/mysql 存放mys...
摘要:構(gòu)建配置其它代碼啟動啟動后,用數(shù)據(jù)連接工具測試,鏈接地址樹莓派端口用戶名密碼到此為止,屬于你自己的工作環(huán)境已經(jīng)做好了。 普通PC環(huán)境也可以用以下配置,只是MYSQL那里換回mysql官方版本就可以。 Docker 安裝 $ curl -sSL get.docker.com | sudo sh 工作目錄 /lnmp/conf 存放虛擬主機(jī)配置/lnmp/data/mysql 存放mys...
摘要:基礎(chǔ)命令關(guān)于搜索下載查看或者刪除單個刪除多個刪除查看信息占用關(guān)于查看重啟停止雜項(xiàng)命令網(wǎng)絡(luò)相關(guān)清除網(wǎng)絡(luò)緩存查看網(wǎng)絡(luò)列表查看詳情掛載目錄清除緩存查看列表查看詳情系統(tǒng)相關(guān)系統(tǒng)信息查看占用清除所有包含構(gòu)建失敗的鏡像沒有被使用的網(wǎng)絡(luò)配 docker基礎(chǔ)命令 關(guān)于images 搜索 docker search php 下載 docker pull php:7.3.6-fpm-alpine3....
閱讀 476·2021-10-09 09:57
閱讀 483·2019-08-29 18:39
閱讀 820·2019-08-29 12:27
閱讀 3036·2019-08-26 11:38
閱讀 2674·2019-08-26 11:37
閱讀 1300·2019-08-26 10:59
閱讀 1387·2019-08-26 10:58
閱讀 996·2019-08-26 10:48