通过Laradock学习Docker-Configuration前言众所周知,docker是目前最火的容器引擎,因其沙箱特性、即插即用和快速便捷的部署能力而备受喜爱由用户。Docker通常有两种执行方式,一种是直接通过命令行拉取运行容器并添加参数,但由于用户实际应用复杂,可能由多个容器组成,容器之间存在关联关系,这在使用中可能需要重复部署多次。因此,需要一定的编排和部署能力来简化这个操作。另一种方式就是我们今天介绍的,通过安排文件部署,即以compose方式运行容器。Compose操作需要对应的yml文件和Dockerfile。通过调用Docker/Swarm的API编排容器应用。Laradock是一个功能齐全的PHP集成开发环境,使用Compose来运行容器。环境依赖GitDocker>=1.12安装安装Docker可以到官网,或者国内服务商(如道云)下载对应操作系统的安装文件(或者在线安装),所以我这里就不赘述了。如果是linux系统,安装docker后,需要单独安装docker-compose。安装Laradock并使用Gi??t克隆源码gitclonehttps://github.com/laradock/laradock.git编辑配置文件cpenv-example.env打开.env文件,修改公共变量APPLICATION的路径。默认路径是APPLICATION=../我们可以根据需要做相应的修改。一般我们的主机上都会有一个或多个项目。在这种情况下,设置以下设置:APPLICATION=../www/这是什么意思?我们来看docker-compose.dev.yml文件版本:"2"services:###ApplicationsCodeContainer###############################applications:volumes:-${APPLICATION}:/var/www我们看到我们配置了一个容器applications,它映射了一个数据卷,将本地www目录映射到/var/www目录在容器中查看相关配置文件配置版本:'2'services:###ApplicationsCodeContainer################################applications:image:tianon/true###WorkspaceUtilitiesContainer###############################对于排版,稍作修改,省略其他部分#####################用于排版,略作修改,省略其他部分php-fpm:build:context:./php-fpmvolumes_from:applications###NGINX服务器容器#################################:context:./nginxvolumes_from:applications我们看到刚才在compose-dev.yml中定义的容器应用都是基于镜像:tianon/true容器工作区是一个控制台容器,可以通过配置文件安装各种需要的软件,如node、yarn等。它与php-fpm、nginx等容器共享容器应用的数据量,也就是说这几个写Volumes_from:-应用容器中的路径/var/www共享本地目录../www编辑nginx主机配置文件laradock/nginx/sitesserver{listen80default_server;听[::]:80default_serveripv6only=on;服务器名称本地主机;根目录/var/www/public;indexindex.phpindex.htmlindex.htm;位置/{try_files$uri$uri//index.php$is_args$args;}location~\.php${try_files$uri/index.php=404;fastcgi_passphp-上游;fastcgi_indexindex.php;fastcgi_buffers1616k;fastcgi_buffer_size32k;fastcgi_paramSCRIPT_FILENAME$document_root$fastcgi_script_name;众所周知/acme-challenge/{root/var/www/letsencrypt/;log_not_found关闭;因为laradock项目默认是为laravel框架配置的,所以我们看到网站的根目录默认设置为/var/www/public。这里我们修改根目录为我们需要的路径,比如/var/www/your-project-name/public。如果你的项目不是基于laravel,你可以去掉public或者做相应的修改。如果您使用Chrome63或更高版本进行开发,请不要将server_name设置为以.dev结尾为什么?。可以使用.localhost,.invalid,.test,.example等代替,我个人比较推荐使用.localhost,这样就不用修改容器宿主机的host文件,它会指向IP127。默认为0.0.1。运行容器(在laradock目录下)docker-composeup-dnginx结束语至此,laradock的配置和分析就基本介绍完了。朋友们,请写一个helloworld试试看。在下一篇文章中,我们会讲到如何通过容器让我们的网站支持https协议。有问题的同学可以来我的公众号
