亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Docker下多容器搭建 lamp的詳細過程(httpd+mysql+php+redis)

 更新時間:2024年01月29日 10:31:12   作者:Kang_Boy  
這篇文章主要介紹了Docker下多容器搭建lamp的詳細過程(httpd+mysql+php+redis),搭建拉取所需鏡像,本文給大家講解的非常詳細,感興趣的朋友跟隨小編一起看看吧

說明

  • LAMP架構(gòu)是 linux+apache+php+mysql
  • 搭建的服務(wù)器環(huán)境,docker容器都基本都是基于linux的,所以實際需要部署的apache容器+php容器+mysql容器+redis容器
  • 本內(nèi)容docker宿主機是windows
  • 各個容器之間互聯(lián)關(guān)系:mysql容器、redis容器 只和 PHP容器有互聯(lián)(–link),httpd容器 只和 php容器有互聯(lián)(–link),所以創(chuàng)建容器的流程 依次 為 mysql 容器、redis容器、php容器(互聯(lián)mysql、redis)、httpd容器(互聯(lián)PHP)
  • 宿主機和容器之間進行目錄或文件掛載時,需提前準備好相關(guān)目錄與文件,一旦創(chuàng)建,宿主機里面的目錄或文件 會 直接覆蓋容器內(nèi)對應(yīng)的目錄和文件
  • 宿主機和容器之間掛載配置文件時,在宿主機內(nèi)修改配置文件后,需重啟對應(yīng)的容器

搭建

拉取所需鏡像

docker pull php:5.6-fpm
docker pull httpd    
docker pull mysql:5.7
docker pull redis:3.2
#版本號可根據(jù)實際需求選擇

mysql

mysql創(chuàng)建

通過 mysql:5.7 鏡像創(chuàng)建一個 mysql 容器
	docker run -d --name my-mysql -p 3333:3306 -e MYSQL_ROOT_PASSWORD=123456  mysql:5.7

-d 后臺運行容器

-p 將宿主機端口映射到容器(3306是默認端口,若使用默認端口,請確保宿主機當(dāng)前端口未被占用)

-e MYSQL_ROOT_PASSWORD=123456 給root用戶設(shè)置一個初始密碼

–name 指定容器別名

mysql測試

第一種:
	進入mysql容器 
	docker exec -it my-mysql /bin/bash
	登錄mysql
	mysql -uroot -p123456
第二種:
	通過Navicat進行連接測試
	主機或IP地址:localhost
    端口:宿主機映射的端口

redis

redis創(chuàng)建

通過 redis:3.2 鏡像創(chuàng)建一個 redis 容器
	 docker run -d --name my-redis -p 6389:6379 redis:3.2

-d 后臺運行容器

-p 將宿主機端口映射到容器(6379是默認端口,若使用默認端口,請確保宿主機當(dāng)前端口未被占用)

–name 指定容器別名

redis測試

第一種:
	進入mysql容器 
		docker exec -it  my-redis /bin/bash
	切換到客戶端
		redis-cli
	創(chuàng)建一個key
		set name qyh
第二種:
	通過redis管理工具(Redis Desktop Manager) 進行連接測試
	Host:localhost
    Port:宿主機映射的端口

php

php創(chuàng)建

通過 php:5.6-fpm 鏡像創(chuàng)建一個 php 容器
	docker run -d -p 9999:9000 --name my-php -v D:\DockerTest\damp\httpd\www\:/var/www/html --link my-mysql  --link my-redis  php:5.6-fpm

-d 后臺運行容器

-p 將宿主機端口映射到容器(9000是默認端口,若使用默認端口,請確保宿主機當(dāng)前端口未被占用)

-v D:\DockerTest\damp\httpd\www:/var/www/html 將宿主機的某目錄 到容器內(nèi)某目錄,實現(xiàn)文件同步
(掛載一個空文件夾是會覆蓋容器中的內(nèi)容,所以配置文件要事先準備好。這里要注意當(dāng)前項目的路徑,不要直接拷貝使用)

–link my-mysql 和 前面創(chuàng)建的mysql容器互聯(lián)

–link my-redis 和 前面創(chuàng)建的redis容器互聯(lián)

–name 指定當(dāng)前容器別名

php安裝擴展

進入php容器中
	docker exec -it my-php /bin/bash
安裝擴展pdo_mysql
	docker-php-ext-install pdo_mysql
安裝擴展mysql
	docker-php-ext-install mysql
安裝擴展mysqli
	docker-php-ext-install mysqli
安裝擴展pdo
	docker-php-ext-install pdo
安裝擴展redis
	#由于php源碼中沒有redis,則需要手動拉取redis包
	#拉取redis擴展包
	curl -L -o /tmp/redis.tar.gz  https://github.com/phpredis/phpredis/archive/4.2.0.tar.gz
	#解壓包
	tar zxvf  /tmp/redis.tar.gz
	#刪除包
	rm -r /tmp/redis.tar.gz
	#創(chuàng)建執(zhí)行目錄
	mkdir -p /usr/src/php/ext
	#將解壓后的redis擴展移到執(zhí)行目錄
	mv phpredis-4.2.0 /usr/src/php/ext/redis
	#安裝redis
	docker-php-ext-install redis

php測試

重啟php容器
		docker restart my-php
進入php容器
		docker exec -it my-php /bin/bash
在宿主機映射目錄 D:\DockerTest\damp\httpd\www\ 下創(chuàng)建一個 index.php
		<?php
		phpinfo();
容器內(nèi)執(zhí)行 php -f index.php
返回PHP各配置信息,則表示創(chuàng)建成功

php與mysql互聯(lián)測試

進入php容器
		docker exec -it my-php /bin/bash
在宿主機映射目錄 D:\DockerTest\damp\httpd\www\ 下創(chuàng)建一個 dbtest.php
		<?php
		$servername = "my-mysql"; //mysql容器別名
		$username = "root";
		$password = "123456";
		try {
	    	$conn = new PDO("mysql:host=$servername;", $username, $password);
	    	echo "sucess\n";
		}
		catch(PDOException $e)
		{
	   	 echo $e->getMessage();
		}
容器內(nèi)執(zhí)行 php -f dbtest.php
返回 sucess  ,則表示數(shù)據(jù)庫連接成功

php與redis互聯(lián)測試

進入php容器
		docker exec -it my-php /bin/bash
在宿主機映射目錄 D:\DockerTest\damp\httpd\www\ 下創(chuàng)建一個 redistest.php
		<?php
			 $redis = new Redis();
				$redis->connect('my-redis', 6379); //redis容器別名,默認端口
			    $count = $redis->exists('count') ? $redis->get('count') : 1;
			    echo $count;
			    if($redis->set('count', ++$count)){
					echo "success";
				}else{
					echo "error";
				}
容器內(nèi)執(zhí)行 php -f redistest.php
返回 sucess  ,則表示redis操作成功

httpd(apache2)

配置文件準備

httpd涉及到一些相關(guān)配置,宿主機和容器掛載目錄或文件時,必須要保證存在,因為一旦創(chuàng)建,宿主機所掛載的內(nèi)容會直接覆蓋容器里對應(yīng)的內(nèi)容
1.隨便創(chuàng)建一個httpd容器
	docker run -d --name test-httpd -p 80:80 httpd
2.進入容器 查看相關(guān)配置文件位置
	docker exec  -it test-httpd /bin/bash
3.將httpd相關(guān)配置 復(fù)制 到宿主機
	docker cp test-httpd:/usr/local/apache2/conf/httpd.conf  D:\DockerTest\damp\httpd\conf\
	docker cp test-httpd:/usr/local/apache2/conf/extra  D:\DockerTest\damp\httpd\conf\
4.刪除當(dāng)前容器
	docker rm -f test-httpd
5.修改 復(fù)制到宿主機的配置
    在 httpd.conf 文件最后面添加 
    	Include conf/extra/test.conf (test.conf可以隨便自定義)
    在 extra目錄下 創(chuàng)建 test.conf 文件,并添加
    	 <IfModule dir_module>
				DirectoryIndex index.html index.php
		</IfModule>
		<VirtualHost *:80>
			DocumentRoot "/usr/local/apache2/htdocs"
			ServerName localhost
		<Directory "/usr/local/apache2/htdocs">
 			Options None
 			Require all granted
		</Directory>
	    ProxyRequests Off
		ProxyPassMatch ^/(.*\.php)$ fcgi://172.17.0.9:9000/var/www/html/$1
		</VirtualHost>
		LoadModule proxy_module modules/mod_proxy.so
		LoadModule proxy_connect_module modules/mod_proxy_connect.so
		LoadModule proxy_fcgi_module modules/mod_proxy_fcgi.so
6.注意:
		 配置文件中 fcgi://172.17.0.9:9000/ 
			 ip:為php容器在局域網(wǎng)中實際的ip,可以通過 docker network inspect bridge 進行查看
			 端口:為容器里默認端口
			 若PHP容器重新啟動,需查看對應(yīng)IP是否發(fā)生改變
除創(chuàng)建httpd,其他情況下修改配置文件,需重啟httpd服務(wù)

httpd創(chuàng)建

通過 httpd:latest 鏡像創(chuàng)建一個 httpd 容器
docker run -d --name my-httpd -p 8081:80 -v D:\DockerTest\damp\httpd\conf\httpd.conf:/usr/local/apache2/conf/httpd.conf -v D:\DockerTest\damp\httpd\conf\extra\:/usr/local/apache2/conf/extra/ -v D:\DockerTest\damp\httpd\www\:/usr/local/apache2/htdocs  --link my-php httpd

-d 后臺運行容器

-p 將宿主機端口映射到容器(80是默認端口,若使用默認端口,請確保宿主機當(dāng)前端口未被占用)

-v D:\DockerTest\damp\httpd\www:/usr/local/apache2/htdocs 將宿主機的某目錄 到容器內(nèi)某目錄,實現(xiàn)文件同步
(掛載一個空文件夾是會覆蓋容器中的內(nèi)容,所以配置文件要事先準備好。這里要注意當(dāng)前項目的路徑,不要直接拷貝使用)

–link my-php 和 前面創(chuàng)建的php容器互聯(lián)

–name 指定當(dāng)前容器別名

httpd測試

瀏覽器
http://127.0.0.1:8081/index.php
http://127.0.0.1:8081/dbtest.php   //測試數(shù)據(jù)庫是否連接成功
http://127.0.0.1:8081/dbtest.php   //測試redis是否正常

到此這篇關(guān)于Docker下多容器搭建 lamp (httpd+mysql+php+redis)的文章就介紹到這了,更多相關(guān)Docker多容器搭建 lamp內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Docker 網(wǎng)絡(luò)模式及配置方式

    Docker 網(wǎng)絡(luò)模式及配置方式

    這篇文章主要介紹了Docker 網(wǎng)絡(luò)模式及配置方式,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-03-03
  • MacBookPro下docker的安裝與使用教程

    MacBookPro下docker的安裝與使用教程

    Windows與Linux下關(guān)于docker的安裝使用方法有很多,今天小編這里給大家分享的是MacOS下docker的安裝與簡單使用案例,非常簡單,給有需要的小伙伴參考下
    2017-03-03
  • docker上快速搭建gitlab、gitlab-runer及實現(xiàn)CI/CD功能

    docker上快速搭建gitlab、gitlab-runer及實現(xiàn)CI/CD功能

    這篇文章主要介紹了docker上快速搭建gitlab、gitlab-runer及實現(xiàn)CI/CD,本文給大家講解的非常詳細,包括docker上安裝gitlab的相關(guān)操作及配置root賬號密碼,需要的朋友可以參考下
    2022-04-04
  • docker中修改鏡像容器的存放目錄的方法

    docker中修改鏡像容器的存放目錄的方法

    本篇文章主要介紹了docker中修改鏡像容器的存放目錄的方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-07-07
  • Docker容器compose容器集群的快速編排方式

    Docker容器compose容器集群的快速編排方式

    這篇文章主要介紹了Docker容器compose容器集群的快速編排方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-11-11
  • docker?compose快速開始超詳細教程

    docker?compose快速開始超詳細教程

    docker-compose是基于docker的開源項目,托管于github上,由python實現(xiàn),調(diào)用?docker服務(wù)的API負責(zé)實現(xiàn)對docker容器集群的快速編排,即通過一個單獨的yaml文件,來定義一組相關(guān)的容器來為一個項目服務(wù),本文給大家介紹docker?compose快速開始,感興趣的朋友一起看看吧
    2022-05-05
  • 如何免sudo使用docker命令詳解

    如何免sudo使用docker命令詳解

    有時候發(fā)現(xiàn)docker有的指令必須加sudo才能執(zhí)行,下面這篇文章主要給大家介紹了關(guān)于如何免sudo使用docker命令的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友下面來一起看看吧。
    2017-12-12
  • Centos7安裝docker compse踩過的坑及解決方法

    Centos7安裝docker compse踩過的坑及解決方法

    本文,我們介紹如何在centos7環(huán)境下安裝docker-compose, 記錄下安裝過程步驟以及遇到的問題還有解決辦法,感興趣的朋友參考下吧
    2018-01-01
  • docker覆蓋鏡像默認命令之docker?entrypoint詳解

    docker覆蓋鏡像默認命令之docker?entrypoint詳解

    entrypoint命令就是覆蓋ENTRYPOINT命令的,本文給大家介紹了docker覆蓋鏡像默認命令之docker?entrypoint的相關(guān)知識,需要的朋友可以參考下
    2023-10-10
  • Linux環(huán)境下安裝docker環(huán)境(親測無坑)

    Linux環(huán)境下安裝docker環(huán)境(親測無坑)

    大家好,本篇文章主要講的是Linux環(huán)境下安裝docker環(huán)境(親測無坑),感興趣的同學(xué)趕快來看一看吧,對你有幫助的話記得收藏一下
    2021-12-12

最新評論