当前位置 主页 > 服务器问题 > Linux/apache问题 >

    docker部署LNMP&phpMyAdmin的方法步骤

    栏目:Linux/apache问题 时间:2019-11-08 01:21

    环境准备:

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

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

    注意:因为当容器停止时或者将容器删除,再次运行相同的容器,它的ip地址不再时原来的地址,所以我们需要自定义一个网段,来指定容器的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的镜像-->

    (3)####运行一个基于nginx镜像的容器#####

    #先将nginx服务运行,以拷贝出nginx的配置文件:

    参数解释:

    run :创建一个新的容器 -d:后台运行 --name:自定义名称为test1

    在宿主机创建需要挂载文件的目录:

    网站主目录:/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 "<h1>hello welcome to nginx web</h1>" > index.html


    (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

    参数解释:

    run:运行一个容器 -itd: i:可交互 t:伪终端 d:保持容器后台运行 --network :基于哪张网卡创建网络 --ip: 定义容器的ip地址 -v = --volume 数据卷,进行一个挂载 挂载格式: 宿主机:容器内 p:映射端口,宿主机端口:容器内端口

    (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