Dockerfile部署lnmp
实验步骤
(需一台安装好docker的虚拟机)
systemctl stop firewalld
systemctl disable firewalld
setenforce 0
#指定网段
docker network create --subnet=172.18.0.0/16 --opt "com.docker.network.bridge.name"="docker1" mynetwork
1.部署nginx
mkdir /opt/nginx
cd /opt/nginx/
#上传 nginx-1.12.0.tar.gz、wordpress-4.9.4-zh_CN.tar.gz 到 /opt/nginx/ 目录中
mkdir /opt/nginx/html
tar zxvf wordpress-4.9.4-zh_CN.tar.gz -C /opt/nginx/html
#编写Dockerfile

#建立镜像
docker build -t nginx:lnmp .
#启动容器
docker run -d --name nginx -p 80:80 -v /opt/nginx/html:/usr/local/nginx/html --net mynetwork --ip 172.18.0.10 nginx:lnmp
docker ps -a #查看容器

2. 部署mysql
mkdir /opt/mysql
cd /opt/mysql
#上传 mysql-boost-5.7.20.tar.gz 到 /opt/mysqld 目录中
#编写Dockerfile文件


#配置my.cnf文件

#编写启动脚本
#!/bin/bash
/usr/local/mysql/bin/mysqld
systemctl enable mysqld

#构建镜像
docker build -t mysql:lnmp .
#启动容器
docker run --name=mysql -d --privileged -v /usr/local/mysql --net mynetwork --ip 172.18.0.20 mysql:lnmp /usr/sbin/init
docker ps -a

3.部署php
mkdir /opt/php
cd /opt/php
#上传 php-7.1.10.tar.bz2 、php-fpm.conf、php.ini、www.conf到 /opt/php 目录中
#编写Dockerfile


#构建镜像以及启动容器
docker build -t php:lnmp .
docker run --name=php -d -p 9000:9000 --volumes-from mysql --volumes-from nginx --net mynetwork --ip 172.18.0.30 php:lnmp
docker ps -a

4.进入mysql
docker exec -it mysql /bin/bash
mysql
#创建表并指定用户登录mysql
create database wordpress;
grant all privileges on wordpress.* to 'wordpress'@'%' identified by '123456';
grant all privileges on *.* to 'root'@'%' identified by 'abc123';
flush privileges;
#浏览器访问验证

该博客详细介绍了如何在已安装Docker的虚拟机上通过Dockerfile部署LNMP(Nginx、MySQL、PHP)环境。首先停用和禁用防火墙,创建自定义网络,并为每个组件(Nginx、MySQL、PHP)编写Dockerfile来构建镜像。然后,启动容器并配置相应的网络和端口映射。最后,创建数据库并授权用户,通过浏览器验证部署是否成功。
1503

被折叠的 条评论
为什么被折叠?



