linux cpu占用率如何看
275
2022-10-31
docker部署LNMP&phpMyAdmin
环境准备:
在一台主机上部署lnmp,基于多个容器:nginx服务:172.16.10.10mysql服务:172.16.10.20php服务: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 [root@sqm-docker01 ~]# docker pull mysql:5.7
(3)####运行一个基于nginx镜像的容器######先将nginx服务运行,以拷贝出nginx的配置文件:
参数解释: run :创建一个新的容器 -d:后台运行 --name:自定义名称为test1
在宿主机创建需要挂载文件的目录:网站主目录:/~]# 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 "hello welcome to nginx web" > index.html
[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 /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
-e就是设置容器里的环境变量,我们设置了mysql的密码环境变量,这个变量会传入容器里面来设置mysql的密码
(6)运行php容器:
[root@sqm-docker01 ~]# docker run -itd -p 9000:9000 --name phpfpm -v /--network my_net1 --ip 172.16.10.30 php:7.2-fpm
注意:保证nginx和php共享一个存放网页的目录,php创建和nginx相同的默认网页根目录(-v挂载时,如果容器中没有该目录,将会自动创建)。
(8)配置mysql:搭建phpMyadmin:
phpMyAdmin 是一个以PHP为基础,以Web-Base方式架构在网站主机上的MySQL的数据库管理工具,让管理者可用Web接口管理MySQL数据库。借由此Web接口可以成为一个简易方式输入繁杂SQL语法的较佳途径,尤其要处理大量数据的导入及导出更为方便。其中一个更大的优势在于由于phpMyAdmin跟其他PHP程序一样在网页服务器上运行,但是您可以在任何地方使用这些程序产生的HTML页面,也就是于远程管理MySQL数据库,方便的创建、修改、删除数据库及数据表.
[root@sqm-docker01 html]# pwd /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
将原先的location配置项进行拷贝,再添加以下两个location配置段。
访问测试网页:已经将容器中的端口映射到了宿主机上,所以直接访问宿主机地址:172.16.1.30
接下来测试登陆 phpMyAdmin:访问url: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 .
参数解释: build:进行构建 -t :指定标签 . 表示当前目录下的Dockerfile
构建完成后,将原有的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 / --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
修改完配置文件重启php:
[root@sqm-docker01 phpmyadmin]# docker restart phpfpm phpfpm
访问phpMyAdmin网页:输入url:本文至此结束,感谢阅读 ————————
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~