Docker 是什么
Docker 基于 Go 语言开发,是一个基于 LXC 技术之上构建的 Container 容器引擎。容器是一种以固定格式打包软件的方式,以便让软件可以在共享的操作系统中运行,不同于虚拟机,容器并不需要捆绑这个操作系统,只需要软件正常工作所必须的库和设置即可,这使得容器更加高效、轻量级、可以自成系统并且不管部署在什么地方都可以保证运行结果一致。
Docker提供了一种在安全、可重复的环境中自动部署软件的方式,它的出现拉开了基于云计算平台发布产品方式的变革序幕。开发者使用 Docker 可以解决当需要和同事共享代码时”只能在我的机器工作”的问题;操作者使用 Docker 可以在关联容器中边运行边管理以便获取更好的计算密度;企业使用 Docker 可以用来构建敏捷的软件分发管道以便可以更快处理新特性。
为什么要使用 Docker
Docker 的出现就是为了解决以下问题:
Docker 通常用于如下场景:
本教程不将那么多高大上的东西了,我们专注于通过 Docker 构建一个可移植的本地开发环境
首先我们需要在系统安装 Docker 的免费社区版,官方提供 Windows、Mac 及 Linux 等版本下载:
下载地址:https://www.docker.com/community-edition#/download
下载操作系统对应版本安装后,双击打开 Docker 应用,即可在命令行检查是否安装成功:
如何在 Laradock 中快速安装 Nginx、PHP、Composer、MySQL、Redis 等工具?
1、首先将 Laradock 项目代码克隆到本地:
git clone https://github.com/Laradock/laradock.git
2. 进入 laradock
目录将 env-example
重命名为 .env
:
cp env-example .env
3. 修改里面的参数
修改 MYSQL_VERSION=5.7 // 我用的是mysql5.7的版本
修改 DOCKER_HOST_IP=本地的IP地址
修改PHP_FPM_INSTALL_XDEBUG=true // 安装xdebug
修改WORKSPACE_INSTALL_XDEBUG=true
4. 安装需要的容器
docker-compose up -d nginx redis mysql
如果指定端口已经被占用,运行上述命令会报错,关闭相应的服务再重新运行上述命令即可。
5、要测试配置访问域名指向 Docker 环境目录,我们先在 laradock
父级目录下创建一个与 laradock
同级的 html 目录,然后在 html 目录下运行 拉取自己的项目代码 命令创建一个新的 Laravel 应用,相应的层级目录
然后我们需要到 laradock
下编辑 .env
中的 APP_CODE_PATH_HOST
配置项:
nginx配置:
重启nginx服务
docker-compose up -d nginx
我们就可以在浏览器中通过 http://localhost
访问这个应用了,当然,如果需要的话,也可以将 localhost
换成任意你想要的域名,不过 还需要配置 /etc/hosts
和 laradock/nginx/sites/default.conf
里.
注意:
执行如上命令报错
EORROR:No container found for mysql_1
执行命令查看错误日志:
docker logs laradock_mysql_1
官方文档:http://laradock.io/documentation/#mysql-access-from-host
以上的就是我遇到的数据库的坑。目前怎么在vscode 配置xdebug尚未解决,有什么建议的小伙伴欢迎你的宝贵意见!