简介

简述一下我用docker来配置laravel环境

软件镜像

  • php:7.2-rc-fpm-alpine
  • mysql:5.6
  • nginx:1.12.2-alpine

配置环境

  • Ubuntu:16.04
  • macOS:Sierra

以上两个操作系统我都实验过,均能运行


准备

注意点:要是宿主机上面开着mysql和nginx服务的,请停止服务,要不然两个服务分别占用:3306和80或443端口,使得容器无法启动

service mysql stop
ps -ef|grep nginx
kill pid# nginx 的进程号

配置过程

从github上下载配置文件

git clone https://github.com/daimonster/PHP-env.git

切换版本

git checkout laravel5.5

生成php镜像

cd php && docker build -t dai/php:laravel .

特别要注意的是镜像名字不能随便填,如果想要改成别的名字,一定要记得将docker-compose.yml文件中的镜像的名字改成一样的

顺便介绍一些有用的docker操作:

  • 批量删除所有镜像:docker rmi $(docker images -q)
  • 批量停止所有容器:docker stop $(docker ps -aq)
  • 批量删除所有容器:docker rm $(docker ps -aq)

运行docker-composer

docker-compose.yml内容

version: "3"
services:
nginx:
image: nginx:1.12.2-alpine
ports:
#改成127.0.10.10这样不会与localhost冲突
- "127.0.10.10:80:80"
- "127.0.10.10:443:443"
volumes:
- ~/Git-Documents:/home/code:rw # ~/Git-Documents 是我自己的存放代码的目录,需要改成自身存放代码的地方
- ./conf/nginx/nginx.conf:/etc/nginx/nginx.conf:ro#配置nginx
- ./conf/nginx/vhost:/etc/nginx/conf.d:ro#配置nginx
- ./log/nginx:/var/log/nginx:rw
networks:
- code-network php:
image: dai/php:laravel
volumes:
- ~/Git-Documents:/home/code:rw # 这里同上
- ./conf/php/php.ini-development:/usr/local/etc/php/php.ini:ro # 配置php
networks:
- code-network
mysql:
image: mysql:5.6
ports:
- "3310:3306"
volumes:
- ./conf/mysql/my.cnf:/etc/mysql/my.cnf:ro
- ./data/mysql:/var/lib/mysql:rw
- ./log/mysql:/var/log/mysql:rw
environment:
MYSQL_ROOT_PASSWORD: "root"
MYSQL_USER: "test"
MYSQL_PASSWORD: "test123"
networks:
code-network:
driver: bridge

运行命令:

# 前台运行
docker-composer up
# 后台运行
docker-composer up -d

对php容器进行修改

docker ps查看正在运行中的容器,然后进入php容器

docker exec -it [容器ID] sh

创建laravel项目

composer create-project laravel/laravel Laravel --prefer-dist "5.4.*"

给访问用户权限

sudo chown -R :www-data /home/ubuntu/Code/Laravel
sudo chmod -R 775 /home/ubuntu/Code/Laravel/storage

如果能成功显示laravel页面,就OK了

使用docker配置laravel5.5环境的更多相关文章

  1. Mac上通过docker配置PHP开发环境

    这篇文章介绍的内容是关于Mac上通过docker配置PHP开发环境,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下 更多PHP相关知识请关注我的专栏PHP​zhuanlan.zhihu. ...

  2. Docker教程:使用docker配置python开发环境

    http://blog.csdn.net/pipisorry/article/details/50808034 Docker的安装和配置 [Docker教程:docker的安装] [Docker教程: ...

  3. 用 Docker 快速配置前端开发环境

    来源于:http://dockone.io/article/1714 今天是你入职第一天. 你起了个大早,洗漱干净带着材料去入职. 签了合同,领了机器,坐到工位,泡一杯袋装红茶,按下开机键,输入密码, ...

  4. 安装docker及配置Android开发环境

    安装docker 官方原来的安装docker的脚本https://get.docker.com/已经过时,现在使用的是https://get.docker.com/,命令如下: curl -s htt ...

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

    在Docker流行之前,要搭建开发环境通常有两种选择:一种是使用wamp.xampp.mamp等集成开发环境安装包,另外一种就是使用普通虚拟机来安装linux服务器,然后通过下载一键安装包(如:lnm ...

  6. Docker集群实验环境布署--swarm【1 架构说明】

    在读完<Docker技术入门与实践>这本书后,基本上已对Docker了有一些入门的理解,以及我们为什么要使用Docker 答:我们发现在实际工作中,通过openstack一旦把一个VM创建 ...

  7. 如何用docker安装laravel开发环境

    如何用docker安装laravel开发环境 看laravel框架的官方文档安装部分时,发现需要安装特别多软件,估计还有许多复杂的配置,官方推荐使用Laravel Homestead虚拟机进行安装,但 ...

  8. selenium结合docker构建分布式测试环境

    selenium是目前web和app自动化测试的主要框架.对于web自动化测试而言,由于selenium2.0以后socker服务器由本地浏览器自己启动且直接通过浏览器原生API操作页面,故越来越多的 ...

  9. Docker+Jenkins持续集成环境(4):使用etcd+confd实现容器服务注册与发现

    前面我们已经通过jenkins+docker搭建了基本的持续集成环境,实现了服务的自动构建和部署,但是,我们遇到一个问题,jenkins构建出来的镜像部署后,需要通过ip:port去访问,有什么更好的 ...

随机推荐

  1. 《操作系统导论》第14章 | 内存操作API

    内存类型 在运行一个C程序的时候,会分配两种类型的内存.第一种称为栈内存,它的申请和释放操作是编译器来隐式管理的,所以有时也称为自动内存.假设需要在func()函数中为一个整形变量x申请空间,我们只需 ...

  2. 实战 | 关于随手一点就发现XSS漏洞这件事

    起因 今天正在做一个项目时,需要找一个云接码平台接码去登录系统.当我随手从百度找了一个接码平台时,一个偶然的发现,有了今天这篇文章. 正文 当我进入这个接码平台随便找了个手机号,然后等了好几分钟都没啥 ...

  3. 重点收藏!BI数据分析工具哪家强?

    信息爆炸时代,大数据晋升为一个时髦词汇.不论是在哪个行业领域,大数据分析成为各企业备受推崇的决策工具.对于海量数据的挖掘,有助于统计事情发生的概率,帮助人们计算做某些事情成功的几率.企业正在数据的海洋 ...

  4. nmtui解决network-scripts目录下无网卡对应配置文件问题

    1.问题出现的原因设备先安装了操作系统,后插上网卡到设备,就会出现/etc/sysconfig/network-scripts目录下无该网卡对应配置文件的问题,但是ifconfig命令能看见系统给该网 ...

  5. C# Debug和Trace:输出调试信息

    在 C# 语言中允许在程序运行时输出程序的调试信息,类似于使用 Console.WriteLine 的方式向控制台输出信息.所谓调试信息是程序员在程序运行时需要获取的程序运行的过程,以便程序员更好地解 ...

  6. (一) operator、explicit与implicit 操作符重载

                               原文地址:  Click Here 操作符重载必须用public static 应为操作符是用来操作实例的. operator operator ...

  7. centos7 下搭建 hfish 2.1.0

    HFish是一款基于 Golang 开发的跨平台多功能主动攻击型蜜罐网络钓鱼平台框架系统,为了企业安全防护测试做出了精心的打造 HFish 开发的官网:https://hfish.io HFish地址 ...

  8. java jdbc连接池

    public class C3P0Util { //1. 在成员变量位置创建一个静态的ComboPooledDtatSource 对象 private static ComboPooledDataSo ...

  9. pandas模块补充

    数据分析模块pandas和matplotlib补充 面向百度式编程 面向百度式工作 遇到没有见过的知识点或者是相关知识点一定不要慌,结合百度和已知的知识点去学习 pandas模块补充 基于numpy构 ...

  10. pandas模块篇(终章)及初识mataplotlib

    今日内容概要 时间序列 针对表格数据的分组与聚合操作 其他函数补充(apply) 练习题(为了加深对DataFrame操作的印象) mataplotlib画图模块 今日内容详细 时间序列处理 时间序列 ...