容器技术docker已经火了很久了,之前只是简单的看了些入门的文档,简单的体验了一下,最近看到一篇docker的文章,开头列出了一些招聘中对docker的要求,下面也详细讲了docker的使用,受益匪浅,这里记录下我在php环境中使用docker技术的初体验,在centos7.4中使用laradock搭建laravel环境。
安装docker
docker的介绍和价值不再说了,基本使用方法请参考这篇文章。
最为详细的Docker入门指南
安装docker-compose
安装Docker-Compose之前,请先安装 python-pip
安装 python-pip
1、首先检查linux有没有安装python-pip包,终端执行 pip -V
2、没有python-pip包就执行命令 yum -y install epel-release
3、执行成功之后,再次执行yum -y install python-pip
4、对安装好的pip进行升级 pip install --upgrade pip
安装Docker-Compose
1、终端执行:pip install docker-compose --ignore-installed requests
2、检查docker-compose 安装:docker-compose -version
安装laradock
因为我一直是从事php开发的,laravel这个框架也用了很久,一直使用官方提供 Homestead 作为本地开发环境是一个虚拟机,跟 docker 比,它占用体积太大,启动速度慢,同时响应速度很慢, docker 这种更方式,可以轻松方便的搭建整套 PHP 开发环境。这里就用laradock使用体验记录下来,给需要的人参考。
- 前置条件:docker,git 安装好
- 克隆laradock。
//比如在/var/www/html 目录
# cd /var/www/html
# git clone https://github.com/Laradock/laradock.git
- 创建环境变量
# cd /var/www/html/laradock/
# cp env-example .env
- 启动需要的服务
# docker-compose up -d nginx mysql redis phpmyadmin workspace
我在前面几步没有遇到问题,在这个步骤提示安装时候文件权限有问题,其他服务都能启用,workspache服务不能启用,导致无法进入workspache执行例如:php aritisan ,composer,node等命令,后来经过github中找答案发现是最新版本不稳定有问题v7.8.0,然后重新检出v7.7.0后重新构建可以用了。
创建laravel项目测试
- 在laradock同级目录创建wwwroot目录,即/var/www/html/wwwroot
-
修改/var/www/html/laradock/.env文件
# APP_CODE_PATH_HOST=../wwwroot/
-
重启workspace容器并进入该容器,进入后会进入容器内目录/var/www,这个目录对应操作系统的/var/www/html/wwwroot。
# docker-compose exec workspace bash
- 创建laravel项目,这个目录就可以操作composer命令,我们按照laravel官方的文档操作创建项目即可,这里不在详述。
-
配置laravel项目.env文件,这里区别于之前配置,比如MySQL、redis等服务host链接配置。
# DB_CONNECTION=mysql # DB_HOST=mysql # DB_PORT=3306 # DB_DATABASE=default # DB_USERNAME=root # DB_PASSWORD=root # # BROADCAST_DRIVER=log # CACHE_DRIVER=file # QUEUE_CONNECTION=sync # SESSION_DRIVER=file # SESSION_LIFETIME=120 # # REDIS_HOST=redis # REDIS_PASSWORD=null # REDIS_PORT=6379
-
nginx配置,切到目录/var/www/html/laradock/nginx/sites/,这里配置类似nginx的多项目配置,有默认的可以参考,配置成自己的域名对应项目目录写容器中地址/var/www/项目目录名/public即可,然后容器命令重启nginx容器,然后通过浏览器访问服务即可。例如:卓上一品。
// 切到laradock目录操作命令 # docker-compose restart nginx
参考资料
- laradock 官方文档:http://laradock.io/
- laradock github:https://github.com/laradock/laradock
- laradock 中文文档:https://laradock-docs.linganmin.cn/