docker部署LNMP和phpMyAdmin的过程

发布时间:2021-09-03 23:44:29 作者:chen
来源:亿速云 阅读:266

本篇内容主要讲解“docker部署LNMP和phpMyAdmin的过程”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“docker部署LNMP和phpMyAdmin的过程”吧!

环境准备:

在一台主机上部署lnmp,基于多个容器:
nginx服务:172.16.10.10
mysql服务:172.16.10.20
php服务:172.16.10.30

解决容器固定ip地址问题:

项目操作:

(1)   首先自定义一个网络:

[root@sqm-docker01 ~]# docker network create -d bridge --subnet  172.16.10.0/24 --gateway 172.16.10.1 mynet1

(2)下载nginx,php:fpm,mysql-5.7镜像:

[root@sqm-docker01 ~]# docker pull nginx 
[root@sqm-docker01 ~]# docker pull php:7.2-fpm  <!--使用的是php:7.2-fpm的镜像-->
[root@sqm-docker01 ~]# docker pull mysql:5.7   <!--使用的是mysql:5.7的镜像-->

docker部署LNMP和phpMyAdmin的过程

(3)####运行一个基于nginx镜像的容器#####
#先将nginx服务运行,以拷贝出nginx的配置文件:

docker部署LNMP和phpMyAdmin的过程

在宿主机创建需要挂载文件的目录:
网站主目录:/wwwroot;
nginx的配置文件:/docker;

[root@sqm-docker01 ~]# mkdir /wwwroot
[root@sqm-docker01 ~]# mkdir /docker

##使用docker cp命令将nginx存放配置文件的目录拷贝到本机,

注意:docker cp命令可以将宿主机上的文件拷贝到容器中,也可以反向拷贝,将容器中的文件或目录拷贝到本机

[root@sqm-docker01 ~]# docker cp  test1:/etc/nginx /docker/        #使用docker cp将nginx存放配置文件的目录拷贝到宿主机

[root@sqm-docker01 ~]# ls /docker/nginx/conf.d/ 

default.conf

#注意:需要修改的是nginx conf.d目录下的default.conf文件,而不是nginx.conf 文件。

拷贝nginx网页目录

[root@sqm-docker01 ~]# docker cp test1:/usr/share/nginx/html /wwwroot/
[root@sqm-docker01 ~]# ls /wwwroot/html/
50x.html  index.html

修改nginx默认的测试网页:

[root@sqm-docker01 html]# echo "<h2>hello welcome to nginx web</h2>" > index.html

docker部署LNMP和phpMyAdmin的过程
(4)运行nginx容器:
分别将容器中目录挂载到本地目录,并且指定ip地址

[root@sqm-docker01 ~]# docker run -itd --name nginx --network my_net1 --ip 172.16.10.10 -p 80:80 -v /docker/nginx:/etc/nginx -v /wwwroot/html:/usr/share/nginx/html nginx:latest

(5)运行mysql容器:

[root@sqm-docker01 ~]# docker run --name mysql -e MYSQL_ROOT_PASSWORD=123.com -d -p 3306:3306 --network my_net1 --ip 172.16.10.20 mysql:5.7

在本机测试root用户是否能够登录mysql:
首先需要下载mysql客户端:
[root@sqm-docker01 ~]# yum -y install mysql
docker部署LNMP和phpMyAdmin的过程

(6)运行php容器:

[root@sqm-docker01 ~]# docker run -itd  -p 9000:9000 --name phpfpm  -v /wwwroot/html:/usr/share/nginx/html --network my_net1  --ip 172.16.10.30 php:7.2-fpm

注意:
保证nginx和php共享一个存放网页的目录,php创建和nginx相同的默认网页根目录(-v挂载时,如果容器中没有该目录,将会自动创建)。

(7)配置nginx和php-fpm:
我们要对php解析nginx进行一个配置:
创建一个简单的测试网页:
docker部署LNMP和phpMyAdmin的过程

(8)配置mysql:
搭建phpMyadmin:

[root@sqm-docker01 html]# pwd
/wwwroot/html

解压到当前目录:
[root@sqm-docker01 html]# unzip phpMyAdmin-4.9.1-all-languages.zip

重命名:
[root@sqm-docker01 html]# mv phpMyAdmin-4.9.1-all-languages phpmyadmin

修改nginx配置文件--配置与phpMyAdmin连接:

[root@sqm-docker01 html]# vim  /docker/nginx/conf.d/default.conf

docker部署LNMP和phpMyAdmin的过程

将原先的location配置项进行拷贝,再添加以下两个location配置段。

修改完nginx配置文件,重启nginx:
docker部署LNMP和phpMyAdmin的过程

访问测试网页:
已经将容器中的端口映射到了宿主机上,所以直接访问宿主机地址:172.16.1.30

docker部署LNMP和phpMyAdmin的过程

访问php解析nginx网页:
docker部署LNMP和phpMyAdmin的过程

接下来测试登陆 phpMyAdmin:
访问url:http://172.16.1.30/phpmyadmin/index.php

docker部署LNMP和phpMyAdmin的过程

缺少mysqli模块,所以无法访问,所以需要添加php支持mysql配置模块:
怎样针对容器进行添加扩展模块,我们可以登陆dockerhub进行查询相关文档:

链接路径:https://hub.docker.com/

docker部署LNMP和phpMyAdmin的过程

docker部署LNMP和phpMyAdmin的过程
复制以上dockerfile脚本,到本地进行安装:
注意还需添加部分内容:
[root@sqm-docker01 ~]# vim Dockerfile

FROM php:7.2-fpm
RUN apt-get update && apt-get install -y \
        libfreetype6-dev \
        libjpeg62-turbo-dev \
        libpng-dev \
    && docker-php-ext-install -j$(nproc) iconv \
    && docker-php-ext-configure gd --with-freetype-dir=/usr/include/ --with-jpeg-dir=/usr/include/ \
    && docker-php-ext-install -j$(nproc) gd \
        && docker-php-ext-install mysqli pdo pdo_mysql

进行构建dockerfile:
[root@sqm-docker01 ~]# docker build  -t phpfpm-mysqli .

docker部署LNMP和phpMyAdmin的过程

构建完成后,将原有的php镜像删除,运行刚刚过构建成功的支持mysqli模块的镜像:

[root@sqm-docker01 ~]# docker stop phpfpm 
phpfpm
[root@sqm-docker01 ~]# docker rm phpfpm 
phpfpm

[root@sqm-docker01 ~]# docker run --name phpfpm -d -p 9000:9000 -v /wwwroot/html:/usr/share/nginx/html  --network my_net1  --ip 172.16.10.30 phpfpm-mysqli:latest

#镜像指定刚刚构建dockerfile生成的镜像名。

修改 phpMyAdmin默认的sample(样例文件):
想要配置文件将其使用,必须进行重命名,将sample去掉。

[root@sqm-docker01 phpmyadmin]# pwd
/wwwroot/html/phpmyadmin
[root@sqm-docker01 phpmyadmin]# cp config.sample.inc.php  config.inc.php

对配置文件进行修改:
[root@sqm-docker01 phpmyadmin]# vim config.inc.php
docker部署LNMP和phpMyAdmin的过程

修改完配置文件重启php:

[root@sqm-docker01 phpmyadmin]# docker restart phpfpm 
phpfpm

访问phpMyAdmin网页:
输入url:http://172.16.1.30/phpmyadmin/index.php

#用户名和密码,是数据库的登陆密码
docker部署LNMP和phpMyAdmin的过程

docker部署LNMP和phpMyAdmin的过程

成功访问到mysql数据库。。。。。。

到此,相信大家对“docker部署LNMP和phpMyAdmin的过程”有了更深的了解,不妨来实际操作一番吧!这里是亿速云网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

推荐阅读:
  1. docker部署lnmp集群
  2. lnmp部署

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

docker lnmp phpmyadmin

上一篇:ubuntu下怎么安装Apache、PHP和Mysql

下一篇:MySQL中的隐藏列的具体查看方法

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》