DNMP架构使用与未来

服务器
第一次了解到docker是在一个同事的耳朵里,我一开始觉得这个玩意儿是啥,听说是一门新技术,我思考了一下,近几年新技术层出不穷,按照我对新技术的态度,一直都是,如果对我的开发有较快速的提升,我一般就会使用,恰恰好,docker就是这么一门提升速度的技术。

 前言

讲完了知乎live,心里的石头总算是落地了,***次讲live,比较尴尬的是问问题的人比较少,都是我一人的自言自语,讲的内容很多,也很杂,不过已经基本上囊括了自学上大部分的路径与架构,很感谢参加的同学,希望有机会我们多多交流。

关于docker

***次了解到docker是在一个同事的耳朵里,我一开始觉得这个玩意儿是啥,听说是一门新技术,我思考了一下,近几年新技术层出不穷,按照我对新技术的态度,一直都是,如果对我的开发有较快速的提升,我一般就会使用,恰恰好,docker就是这么一门提升速度的技术。

docker的架构

这是一张在搜集资料的时候看到的图,很经典

docker+nginx+mysql+php

镜像(类似于安装包的存在)

  1. docker pull mysql:5.6  
  2. docker pull php:7.0-fpm  
  3. docker pull ngixn:1.10.3 

加载完毕以后,可以使用 docker images 查看当前加载的镜像,也可以使用 docker rmi xxID 删除镜像

容器(类似于文件目录,但是每一个都是独立)

容器的设定非常经典,把所有的模块当作封闭的系统来看待,只是用ip进行通讯,按照web的说法就是,高内聚低耦合,非常适合于快速开发

  1. 新建并启动容器 
  2. docker run -d -p 3307:3306 -e MYSQL_ROOT_PASSWORD=xy123456 --name xy_mysql mysql:5.6 
  3.  
  4. docker run -d -v /var/nginx/www/html:/var/www/html -p 9000:9000 --link xy_mysql:mysql --name xy_phpfpm php:7.0-fpm  
  5.  
  6. docker run -d -p 80:80 --name xy_nginx  
  7. -v /var/nginx/www/html:/var/www/html --link xy_phpfpm:phpfpm  
  8.  -v /etc/docker/myNginx/nginx.conf:/etc/nginx/nginx.conf:ro    
  9.   -v /etc/docker/myNginx/conf.d:/etc/nginx/conf.d  
  10.  
  11. --name xy_nginx nginx:1.10.3 
  12.  
  13. 记住,顺序不能乱,因为链接是一块接另一块,坏了其中一块,则无法正常运行 

记住,顺序不能乱,因为链接是一块接另一块,坏了其中一块,则无法正常运行

注意

  • ***个“-v”,是项目位置,把项目放到挂载到的目录下即可;
  • 第二个“-v”,是挂载的主配置文件”nginx.conf”,注意”nginx.conf”文件内有一行”include /etc/nginx/conf.d/*.conf;”,这个include指向了子配置文件的路径,此处注意include后所跟的路径一定不要出错。
  • 第三个“-v”,把docker内子配置文件的路径也挂载了出来,注意要与(2)中include指向路径一致
  • 重点强调一下,nginx.conf是挂载了一个文件(docker是不推荐这样用的),conf.d挂载的是一个目录
  • 执行***一个run的时候,本地目录必须存在已经配置好的配置文件,否则运行nginx会失败
  • 参数说明
  • -d 让容器在后台运行
  • -p 添加主机到容器的端口映射
  • -v 添加目录映射,这里***nginx容器的根目录***写成和php容器中根目录一样。但是不一点非要一模一样,如果不一样在配置nginx的时候需要注意
  • –name 容器的名字
  • –link 与另外一个容器建立起联系

容器基本操作

  1. docker stop xxxID 
  2. docker start xxxID 
  3. docker restart xxxID 
  4. docker ps -a 查看所有运行的容器 
  5. docker exec -ti xxID/Name /bin/bash 进入容器(系统内核为linux) 

特殊操作

  1. docker-php-ext-install pdo_mysql 安装php模块 
  2. docker inspect (id/name) | grep "IPAddress" 查看某一个id的ip 
  3. docker exec -it (id/name) nginx -s reload 重新生效配置 

后记

docker作为一门新技术,很好的改善了,传统开发过程中,每个人的环境都有区别,导致同一个项目跑不同的电脑就是很烦人,往往很容易出现崩盘的情况,测试环境和线上环境的差距,导致很难同步,但是有了docker以后,一切都变得轻松清爽了,这是一门非常值得掌握的技术,至少它能立竿见影加快团队的开发,这是非常值得普及的一门技术。

nginx中 default.conf 配置

  1. server {   
  2.     listen       80;   
  3.     server_name  localhost;   
  4.    
  5.   
  6.     error_page   500 502 503 504  /50x.html;   
  7.     location = /50x.html {   
  8.         root   /usr/share/nginx/html;   
  9.     }   
  10.    
  11.     # proxy the PHP scripts to Apache listening on 127.0.0.1:80   
  12.     #   
  13.     #location ~ \.php$ {   
  14.     #    proxy_pass   http://127.0.0.1;   
  15.     #}   
  16.    
  17.     # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000   
  18.        
  19.     #location ~ \.php$ {   
  20.     #     root           /var/www/html;   
  21.     #     fastcgi_pass   172.17.0.3:9000;   
  22.     #     fastcgi_index  index.php;   
  23.     #     fastcgi_param  SCRIPT_FILENAME $document_root$fastcdi_script_name; 
  24.     #     include        fastcgi_params;   
  25.     # } 
  26.    
  27.     location ~ \.php$ { 
  28.        fastcgi_pass   172.17.0.3:9000; 
  29.        fastcgi_index  index.php; 
  30.        fastcgi_param  SCRIPT_FILENAME  /var/www/html$fastcgi_script_name; 
  31.        fastcgi_param  SCRIPT_NAME      $fastcgi_script_name; 
  32.        include        fastcgi_params; 
  33.     } 
  34.     # deny access to .htaccess files, if Apache's document root   
  35.     # concurs with nginx's one   
  36.     #   
  37.     #location ~ /\.ht {   
  38.     #    deny  all;   
  39.     #}   

 

责任编辑:武晓燕 来源: wow0
相关推荐

2020-05-21 09:33:06

Reactive编程模型

2014-06-16 16:07:37

大数据商业

2011-12-26 10:59:02

数据中心网络TRILLSPB

2014-03-27 09:36:27

机柜式架构光速硅光子

2021-11-09 08:46:20

数据中心数据中心架构数据中心网络

2023-09-06 09:00:00

架构开发异步编程

2024-03-11 00:00:00

应用架构开发

2017-03-19 22:43:12

WebAssemblyJavaScript编程

2016-09-20 10:49:41

云计算

2010-11-09 12:10:20

瞻博网络网络构架Juniper

2016-03-28 15:23:07

网络服务器虚拟化

2013-05-21 10:26:47

存储网络以太网虚拟化

2021-07-16 11:35:08

存储技术趋势

2011-08-10 10:43:08

Fabric云计算融合网络层

2016-11-17 09:33:47

IBM

2009-03-06 18:45:24

虚拟化互联网网络

2020-05-26 22:23:03

Serverless容器Serverless

2020-06-18 11:01:34

数据科学大数据人工智能

2020-11-17 05:41:28

物联网隐私IOT
点赞
收藏

51CTO技术栈公众号