docker下拆分安装lnmp环境

一、docker安装

这里就不说了,docker-ce版本安装可以参考我前面的文章:Centos docker安装(docker-ce版)_Mask玲的博客-CSDN博客

二、安装各个环境

1、安装nginx

docker pull nginx

如要拉取指定版本,访问docker仓库镜像地址:Docker nginx指定版本

启动nginx服务

docker run -p 80:80 -d --name nginx -v /home/wwwroot:/usr/share/nginx/html:cached --privileged=true nginx

#-p 80:80   端口映射
#--name nginx  容器名称
#-v /home/wwwroot:/usr/share/nginx/html:cached  将宿主机/home/wwwroot目录映射到容器内的/usr/share/nginx/html目录,增加容器缓存
#-d 后台运行
#--privileged=true root权限

docker run --net=host -d --name nginx -v /home/wwwroot:/usr/share/nginx/html:cached --privileged=true nginx

#--net=host  不指定端口,直接使用宿主机的端口

测试:进入宿主机/home/wwwroot目录,新建index.html文件

echo hello world! > index.html

浏览器访问ip测试结果

2、安装php-fpm

docker pull php:7.4.33-fpm

访问docker仓库镜像:Docker php指定版本

启动php服务

docker run -p 9000:9000 -d --name php -v /home/wwwroot:/usr/share/nginx/html:cached --privileged=true php:7.4.32-fpm

#配置同上

配置nginx配置文件,将容器中的配置文件复制到宿主机上打开编辑

docker cp nginx:/etc/nginx/conf.d/default.conf ./default.conf

修改以下配置

把配置文件覆盖回去,重启nginx服务

docker cp ./default.conf nginx:/etc/nginx/conf.d/default.conf

docker restart nginx

 测试:进入宿主机/home/wwwroot目录,新建index.php输出phpinfo(),查看浏览器

echo '<?php echo phpinfo();' > index.php

如果需要安装gd库,注意php7.4起安装命令有所不同

旧的

apt update
apt install -y libwebp-dev libjpeg-dev libpng-dev libfreetype6-dev

docker-php-source extract

docker-php-ext-configure gd \
--with-webp-dir=/usr/include/webp \
--with-jpeg-dir=/usr/include \
--with-png-dir=/usr/include \
--with-freetype-dir=/usr/include/freetype2
docker-php-ext-install gd
docker-php-ext-enable gd

新的

apt update
apt install -y libwebp-dev libjpeg-dev libpng-dev libfreetype6-dev

docker-php-source extract

docker-php-ext-configure gd \
--with-jpeg=/usr/include \
--with-freetype=/usr/include/
docker-php-ext-install gd
docker-php-ext-enable gd

 3、安装mysql

docker pull mysql:8.0.23

访问docker仓库镜像:Docker mysql指定版本

启动mysql服务

docker run -itd --name mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql:8.0.23

 mysql8版本可能会出现以下问题:

连接Docker启动的mysql出现:ERROR 2059 (HY000): Authentication plugin 'caching_sha2_password' cannot be loaded

可能因为高版本的原因吧,未去深究,解决方法:

#进入docker后进入mysql
mysql -uroot -p

use mysql;

ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '要设置的密码';

flush privileges;

4、安装mongodb

docker pull mongo:4.4

 启动mongodb服务

docker run -p 27017:27017 -v /data/mongodb:/data/db --name mongodb -d mongo

5、安装redis

docker pull redis

访问docker仓库镜像:Docker redis指定版本

启动redis服务

docker run -itd --name redis -p 6379:6379 redis

三、安装php扩展

1、redis扩展

#下载扩展包
wget https://pecl.php.net/get/redis-5.3.7.tgz

#解压扩展包
tar zxvf redis-5.3.7.tgz

#将扩展包下的文件复制到php容器里
docker cp redis-5.3.7/ php:/usr/src/php/ext/redis

#进入php容器安装redis扩展
docker exec -it php /bin/bash
docker-php-ext-install redis

#查看已装扩展
php -m

2、mysql扩展

#直接进入php容器安装
docker-php-ext-install pdo_mysql

3、mongodb扩展

#安装redis依赖库,已安装的忽略
apt-get install -y libssl-dev

pecl install mongodb


echo "extension=mongodb.so" >> /usr/local/etc/php/conf.d/docker-php-ext-mongodb.ini

#查看扩展
php -m

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值