Docker部署LNMP与phpMyAdmin的详细步骤

0 下载量 65 浏览量 更新于2024-08-29 收藏 618KB PDF 举报
本文主要介绍了如何使用Docker部署LNMP(Nginx、MySQL和PHP)及phpMyAdmin的详细步骤,重点在于解决容器IP地址不固定的问题。 在部署LNMP环境时,我们通常需要在一台主机上运行多个容器,包括Nginx服务、MySQL服务和PHP服务。在本文中,给出了三个容器的IP地址分别为172.16.10.10(Nginx)、172.16.10.20(MySQL)和172.16.10.30(PHP)。但是,Docker容器的一个特点是,当它们停止或删除后,再次启动时可能会分配到不同的IP地址。为了解决这个问题,我们可以创建一个自定义的网络来固定容器的IP地址。 首先,我们需要使用Docker命令创建一个名为mynet的自定义桥接网络,这样可以确保容器在重启后依然保持相同的IP地址。创建网络的命令如下: ```shell docker network create -d bridge --subnet 172.16.10.0/24 --gateway 172.16.10.1 mynet ``` 接下来,我们需要拉取所需的Docker镜像,包括Nginx、PHP FPM和MySQL 5.7。使用以下命令分别拉取这些镜像: ```shell docker pull nginx docker pull php:7.2-fpm docker pull mysql:5.7 ``` 然后,我们将依次启动这三个服务的容器。首先,启动Nginx服务,并将配置文件挂载到宿主机上,以便于管理和编辑。这可以通过以下命令完成: ```shell # 创建宿主机上的挂载目录 mkdir /wwwroot mkdir /docker # 启动Nginx容器并挂载配置文件 docker run -d --name test1 -v /wwwroot:/var/www/html -v /docker/nginx:/etc/nginx nginx ``` 这里使用了`-v`参数挂载宿主机目录到容器内部,方便管理Nginx配置。需要注意的是,`docker cp`命令可以用来在宿主机和容器之间复制文件,例如从容器中复制Nginx配置文件到宿主机: ```shell docker cp test1:/etc/nginx/docker /docker ``` 接下来,我们需要对Nginx配置文件进行适当的修改,以支持与PHP容器的通信。配置完成后,可以重新启动Nginx容器使改动生效。 对于MySQL服务,我们需要设置环境变量来初始化数据库,如`MYSQL_ROOT_PASSWORD`等,并将数据卷挂载到宿主机,以便持久化数据。启动MySQL容器的命令可能如下: ```shell docker run -d --name db_container -v /data/mysql:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=your_password mysql:5.7 ``` 最后,启动PHP FPM容器,确保它能连接到Nginx和MySQL。同样,挂载PHP应用的代码目录到容器内: ```shell docker run -d --name php_container -v /wwwroot:/var/www/html --link db_container:mysql php:7.2-fpm ``` 在部署phpMyAdmin时,可以再创建一个容器,挂载phpMyAdmin的代码并链接到MySQL容器: ```shell docker run -d --name phpmyadmin_container -p 8080:80 --link db_container:mysql -v /wwwroot/phpmyadmin:/var/www/html phpmyadmin/phpmyadmin ``` 现在,你可以通过宿主机的IP地址访问phpMyAdmin,端口号为8080,以管理MySQL数据库。 总结来说,本文提供了使用Docker部署LNMP和phpMyAdmin的详细步骤,包括创建自定义网络来固定容器IP、拉取和启动相关服务的Docker镜像、挂载配置文件和数据卷以及设置容器间的链接。这样的部署方式便于管理和维护,同时也易于扩展和更新。