docker-lnmp安装

标题docker-lnmp安装

获取 Mysql 5.7 镜像

docker pull mysql:5.7

启动容器 mysql

 docker run -p 3306:3306 --name mysql -v /mydocker/mysql/conf:/etc/mysql/conf.d -v /mydocker/mysql/logs:/logs -v /mydocker/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7

参数说明
-d 让容器在后台运行
-p 添加主机到容器的端口映射
-e 设置环境变量,这里设置mysql的root用户的初始密码
-name 容器的名称、只要求唯一性
获取php 7.2镜像

 docker pull php:7.2-fpm

启动php 容器

docker run -d -v /mydocker/www/html:/var/www/html -p 9000:9000 --link mysql:mysql --name cs_phpfpm php:7.2-fpm

参数说明
-d 让容器在后台运行
-p 添加主机到容器的端口映射
-v 添加目录映射,主机上的/var/nginx/www/html映射到容器里面 的/var/www/html,如果主机没有这个目录就创建这个目录,或者映射别的目录,但是后面路径要统一
-name 容器的名字
-link 容器与另外一个容器建立联系,这样就可以在当前的容器去使用另一个容器里的服务

测试目录映射
在主机/var/nginx/www/html 目录下创建php测试页面,会直接映射到容器里面

[root@iZ2ze4wzoj9k9p12p1wemaZ mydocker]#  cat /mydocker/www/html/index.php 
<?
	phpinfo();
?>

//看直接映射到了容器内部了
[root@iZ2ze4wzoj9k9p12p1wemaZ mydocker]#  docker exec -it 92fc30be9a85 /bin/bash   //进入到php的容器里面了
root@92fc30be9a85 :/var/www/html# ls  
index.php

php的扩展安装
安装php-redis

oot@iZ2ze4wzoj9k9p12p1wemaZ mydocker]# docker exec -it 161e8febf93b /bin/bash
root@161e8febf93b:/var/www/html# cd /
root@161e8febf93b:/# pecl install redis && docker-php-ext-enable redis
downloading redis-5.3.2.tgz ...
Starting to download redis-5.3.2.tgz (266,814 bytes)
........................................................done: 266,814 bytes
29 source files, building
running: phpize
Configuring for:
PHP Api Version:         20170718
Zend Module Api No:      20170718
Zend Extension Api No:   320170718
enable igbinary serializer support? [no] : no
enable lzf compression support? [no] : no
enable zstd compression support? [no] : no
building in /tmp/pear/temp/pear-build-defaultuser4SG4R5/redis-5.3.2
running: /tmp/pear/temp/redis/configure --with-php-config=/usr/local/bin/php-config --enable-redis-igbinary=no --enable-redis-lzf=no --enable-redis-zstd=no
checking for grep that handles long lines and -e... /bin/grep
checking for egrep... /bin/grep -E
checking for a sed that does not truncate output... /bin/sed
checking for cc... cc
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out

获取Nginx 1.12.2镜像

docker pull nginx:1.12.2

启动Nginx容器

ocker run -d -p 80:80 --name nginx -v /mydocker/www/html:/var/www/html --link cs_phpfpm:phpfpm --name nginx nginx:1.12.2

参数说明
-d 让容器运行在后台
-p 添加主机到容器的端口映射
-v 添加目录映射,这里最好nginx容器的根目录最好写成和php容器中根目录一样。但是不一定非要一样,如果不一样在配置nginx的时候需要注意
-name 容器的名称
-link 容器之间建立起来联系

修改Nginx 的配置文件,使他支持php ,方式有多种,这里我直接拷贝出配置文件修改在导进去即可

docker cp 235d69f70521:/etc/nginx/conf.d/default.conf /opt/

      cat default.conf 

		server {
		    listen       80;
		    server_name  localhost;
		    location / {
		        root   /var/www/html;
		        index  index.html index.htmi index.php;
		    }

		    error_page   500 502 503 504  /50x.html;
		    location = /50x.html {
		        root   /usr/share/nginx/html;
		    }

		   
		    location ~ \.php$ {
		         root           html;
		        fastcgi_pass   161e8febf93b:9000; # php容器id
		        fastcgi_index  index.php;
		        fastcgi_param  SCRIPT_FILENAME  /var/www/html/$fastcgi_script_name;
		        include        fastcgi_params;
		    }

		   
		}
		修改完毕导入配置文件到Nginx 容器里面

进入到容器里面重新加载配置文件

root@iZ2ze4wzoj9k9p12p1wemaZ mydocker]#  docker exec -it 235d69f70521/bin/bash
root@235d69f70521:/# nginx -t             Nginx检测配置文件是否正确
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
root@235d69f70521:/# nginx -s reload
2020/11/18 15:56:49 [notice] 24#24: signal process started

参数说明
-t 在容器里面生产一个伪终端
-i 对容器内的标准输入(STDIN)进行交互

查看所有容器映射的端口

在这里插入图片描述

访问
在这里插入图片描述

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值