怎么使用Docker搭建PHP开发环境呢?

在Docker流行之前,要搭建开发环境通常有两种选择:一种是使用wamp、xampp、mamp等集成开发环境安装包,另外一种就是使用普通虚拟机来安装linux服务器,然后通过下载一键安装包(如:lnmp)或者逐个安装做需要的软件。前者虽然简单,但太不灵活,想要安装额外的软件或者版本会很麻烦或者干脆不知道如何下手;后者除了费时费力,占用本机资源过多,可能会导致系统运行缓慢,而且如果你忘了及时生成快照,一旦失误,追悔莫及。

幸好,Docker来了!它简单易用,灵活多变,方便迅捷,扫除了以上种种弊端。如果你想稍微详细的认识下这位虚拟化界的明星,传送门( 快速理解Docker )。

安装Docker

平时开发的环境一般都是Mac或者windows,Linux暂时没有研究,所以接下来只针对前两者写下步骤,这两个平台,官方都推荐了两种安装方式:app和工具包(toolbox)。注:app方式对系统版本和配置会有一定要求,而且Windows需要你安装微软虚拟化产品Hyper-V,具体见app链接页面。

APP

https://docs.docker.com/docke...

https://docs.docker.com/docke...

工具包

https://www.docker.com/produc...

以上方式本质上都会在你的系统中安装docker-engine、docker-machine、docker-compose和VirtualBox(除了Windows的app方式)。因为docker高度依赖linux内核提供的cgroup,namespace 等特性和接口,所以mac和windows平台需要使用docker-machine和虚拟机在后台创建运行一个linux内核。

而我的安装方式就是直接在 Mac 上使用brew,如果你未曾安装brew,则在终端执行以下代码:

/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

安装docker所需要的包:

brew install docker docker-machine docker-compose virtualbox

创建一个docker-machine:

docker-machine create -d virtualbox default

注:-d 指定使用virtualbox来创建default 为machine名称

告诉主机如何找到docker-machine:

echo $(docker-machine env ) >> .zshrc

注:这里的.zshrc是我的用户配置文件,如果你用bash,可以改为.bash_profile。

启动docker-machine:

docker-machine start default Compose你的应用

docker-compose是用于定义和运行复杂Docker应用的工具。你可以在docker-compose.yml文件中定义一个多容器的应用,然后使用一条命令来启动,然后所有预先定义好的操作都会被自动完成。

为了不重复造轮子,直接使用github上的第三方包。当然你也可以亲自构建每一个你所需要的容器镜像,然后用docker-compose.yml将所有容器组织起来运行,但这需要你具备一定的linux基础和docker的运行机制和相关语法。

本人正在学习 laradock 这个基于Docker的开发环境包,然后根据自己的需要删除了一些我认为不常用的部分、修改了部分配置以及增加了Elasticsearch容器,最终新开了自己的仓库 DevDock 。当然,也推荐使用laradock。

我的仓库目前支持的容器组合:

nginx , php-fpm , mysql , redis , mongo , apache2 , memcached , elasticsearch , workspace .

注:workspace和php-fpm一般会被其他容器所依赖,所以会自动运行,启动时不必指定。

进入到你的应用的上级目录:

git clone https://github.com/RystLee/DevDock.git

修改hosts

如果直接安装启动,是可以通过Docker IP : 192.168.99.100,就能直接访问nginx的,但一般而言为了方便记忆,我们会去修改hosts文件,增加一条:

192.168.99.100 laravel.dev

修改你的nginx中的站点配置文件:

在DevDock目录下找到nginx,修改sites目录下的站点配置文件,通过修改本地的hosts来自定义域名,并在nginx容器中的sites文件夹下,修改相应的域名映射。

server_name laravel.dev

安装启动应用

cd DevDock docker-compose up -d nginx mysql ... # 后面跟上你想使用的容器即可

然后,耐心地等待开发环境自动搭建完成即可,如果中途出现错误,一般是因为GFW,网络会不太通畅,重新执行一两次就好,完成之后,打开浏览器,访问: http://laravel.dev 即可。

转载于:https://www.cnblogs.com/2881064178dinfeng/p/6208476.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/270273.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

带你理解 只读事务(@Transactional(readOnly = true)

概念:从这一点设置的时间点开始(时间点a)到这个事务结束的过程中,其他事务所提交的数据,该事务将看不见!(查询中不会出现别人在时间点a之后提交的数据) 应用场合: 如果…

计算机硬件软件维护报告,计算机软硬件及络维护技能实习报告.doc

计算机软硬件及络维护技能实习报告计软络维护主板硬盘内存CPU,光驱显卡声卡网卡主板,又叫主机板、系统板和母板;它安装在机箱内,是微机最基本的也是最重要的部件之一。光驱就是播放光盘的,一下安装程序,游戏程序的都是放在光盘里的…

手机:华为手机中Mate、P、nova、畅享有什么含义,看完你就懂了

目录 Mate系列:顶级商务旗舰 P系列:时尚拍照旗舰 nova系列:时尚新星 麦芒:年轻人线下机 畅享:千元机主打 很多人在购买华为手机时,看到华为有Mate系列、P系列、nova系列、麦芒系列、畅享系列,这…

MIP开发常见问题解答

校验相关 1. MIP 页面的 <a>链接校验报错&#xff0c;MIP 是强制 target“_blank” 吗 ? 如果想直接跳转 MIP 页&#xff0c;可以用 mip-link 组件&#xff1b;MIP 页 <a> 强制跳出是为了解决 MIP 体验的问题&#xff0c;12 月底会升级校验&#xff0c;去掉强制 t…

U盘拷贝文件很慢?稍微改变一下使用方式,传输速度就快了6倍

随着云端网盘的快速发展和普遍推广&#xff0c;现在基本是以云存储为主&#xff0c;不过u盘还是必不可缺的小工具&#xff0c;不需要网络支持就能够轻松实现复制内容。有网友问怎么样才能提高u盘的传输速度&#xff0c;传个6G的文件&#xff0c;花了十几分钟&#xff0c;速度好…

俄语计算机考研,研友分享:俄语考研91分的经验体会

2010俄语考研&#xff0c;我的分数是91&#xff0c;有些超乎意料(估分85)&#xff0c;因为知识运用部分的20分有好几个是拿不准的。还有因为觉得翻译比较难耽误了很长时间&#xff0c;留给作文只有不到半个小时&#xff0c;极其仓促&#xff0c;到考试前最后一分钟还在奋笔疾书…

Feign使用原理

Feign Client会在底层根据你的注解&#xff0c;跟你指定的服务建立连接、构造请求、发起靕求、获取响应、解析响应&#xff0c;等等。这一系列脏活累活&#xff0c;人家Feign全给你干了。 那么问题来了&#xff0c;Feign是如何做到这么神奇的呢&#xff1f;很简单&#xff0c;…

Wi-Fi 6值得升级吗?从Wi-Fi 5升级到Wi-Fi 6需要什么?

Wi-Fi 6当下最新的无线标准&#xff0c;在升级到 Wi-Fi 6 之前需要考虑一些事项&#xff0c;例如&#xff0c;Wi-Fi 6 值得升级吗&#xff1f;从 Wi-Fi 5 升级到 Wi-Fi 6 需要什么&#xff1f;什么是 Wi-Fi 6&#xff1f;Wi-Fi 6&#xff0c;根据旧的命名约定也称为 802.11ax&a…

UOJ59 WC2013 小Q运动季

题意&#xff1a;给一个模线性方程组&#xff0c;构造解满足尽量多的方程。 直接枚举。模数两两互质&#xff0c;先排除无解的&#xff0c;然后CRT&#xff0c;然而要高精&#xff0c;上python。直接高消&#xff0c;有完美解。2^20暴搜。分解模数&#xff0c;对每个质数高消&a…

太原理工大学计算机宿舍,2019太原理工大学宿舍怎么样 环境好不好

高考结束之后&#xff0c;各位高中生马上就要升入大学了&#xff0c;大家在上大学之前对宿舍的条件非常的关心&#xff0c;下面小编为大家提供2019太原理工大学宿舍条件&#xff0c;仅供大家参考。2019太原理工大学宿舍条件1、大一的孩子注定是住在1、3号楼之外了&#xff0c;那…

网络知识:光纤收发器TX、RX介绍以及两者的区别

当我们远距离传输时&#xff0c;通常会使用光纤来传输。因为光纤的传输距离很远&#xff0c;一般来说单模光纤的传输距离在10千米以上&#xff0c;而多模光纤的传输距离最高也能达到2千米。而在光纤网络中&#xff0c;我们常常会使用到光纤收发器。那么光纤收发器怎么连?我们一…

ajax post 请求415\ 400 错误

今天用ajax 向后台发送 post请求时&#xff0c;出现了两个问题&#xff1a; 1&#xff0c; 发送请求后&#xff0c;控制台 返回 Unsupported media type-415(不支持的媒体类型)&#xff0c;这时突然想起来&#xff0c;post 请求要设置请求头&#xff0c;于是 写了 xhr.setRequ…

操作系统:再见CentOS,将于本月底终止维护!

一年前Red Hat宣布将在今年底&#xff08;2021年&#xff09;结束提供免费的CentOS Linux&#xff08;CentOS 已死&#xff01;&#xff02;免费&#xff02;的 RHEL 没了…&#xff09;。上周五Red Hat再度提醒&#xff0c;CentOS Linux 8将在今年12月31日来到它的生命周期终点…

软件测试与质量分析实验报告,软件测试实验报告

软件测试实验报告 (42页)本资源提供全文预览&#xff0c;点击全文预览即可全文预览,如果喜欢文档就下载吧&#xff0c;查找使用更方便哦&#xff01;14.90 积分&#xfeff;江西农业大学“软件测试与质量保证”课程大作业学员 王洪 学号 0133843 实验名称 电子商城测试报告 指导…

电脑技巧:Windows服务器挂载磁盘方法介绍

针对服务器来说&#xff0c;挂在磁盘可以说是服务器运维人员必备的技能&#xff0c;今天小编给大家介绍Windows服务器如何正确挂载磁盘&#xff0c;希望对大家能有所帮助&#xff01; 1.原系统为Windows 2012挂载了500G的磁盘存储&#xff0c;因业务需要重新安装为Windows 2016…

Win10桌面美化:推荐2款高质量桌面美化工具,值得收藏

目录 工具一&#xff1a;BitDock&#xff01; 工具二&#xff1a;MyDock 仿Mac美化神器 可能大家电脑的操作系统都是Windows&#xff0c;但是你的桌面是这样的&#xff1a; 而有的人桌面却是这样的&#xff1a; 你看看这差距&#xff0c;有多大呀&#xff01; 那么&#xff0c;…

设计制作简单计算机,自己设计制作CPU与单片机

自己设计制作CPU与单片机语音编辑锁定讨论上传视频本词条缺少概述图&#xff0c;补充相关内容使词条更完整&#xff0c;还能快速升级&#xff0c;赶紧来编辑吧&#xff01;《自己设计制作CPU与单片机》是2014年9月人民邮电出版社出版的图书&#xff0c;作者是姜咏江。中文名自己…