Ubuntu18.04
1、安装docker
参考安装的几种方式: Link
sudo apt install docker.io // 安装
service docker start / systemctl start docker //启动
systemctl enable docker //开机自启动(可选)
docker -v / docker version //查看版本
2、安装docker-composer
参考官方安装:Link
非root身份
sudo curl -L "https://github.com/docker/compose/releases/download/1.24.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
docker-compose --version / docker-composer -v
3、拉取Laradock
参考laravel学院:Link
cd /var/www/
git clone https://github.com/Laradock/laradock.git //将 Laradock 项目代码克隆到本地
cd laradock
cp env-example .env
docker-compose up -d nginx mysql redis beanstalkd //运行容器
如果指定端口已经被占用,运行上述命令会报错,关闭相应的服务再重新运行上述命令即可。
另外,运行容器需要FQ,并且第一次需要下载镜像,可能等待时间较长 。
4、配置Laradock
4.1 打开项目的 .env 环境配置文件并添加如下配置:
DB_HOST=mysql
REDIS_HOST=redis
QUEUE_HOST=beanstalkd
APPLICATION=../wwwroot/
or
APPLICATION=../
//表示Laradock容器里的 /var/www/ 目录对应的是虚拟机的/var/www/wwwroot/ 目录,当然你也可以配置为../ ,这样你的多个项目就和laradock目录同级,具体项目配置参见:https://laradock.io/
MYSQL_VERSION=5.7 //默认latest 也就是5.8版本,最新版本navicate连接时会报加密引擎改变而导致的错误,建议不用5.8
5、nginx配置、域名配置
nginx
laradock/nginx/sites/ : 是nginx项目配置文件
如果是laravel项目: cp laravel.conf.example blog.conf
或者thinkphp项目: cp default.conf think.conf
# blog.conf
listen 80;
listen [::]:80;
server_name blog.com;
root /var/www/blog/public;
listen [::]:80 ipv6only=on; 里面的ipv6only=on 只能出现在一个conf配置文件里,否则会报错:
nginx: [emerg] duplicate listen options for [::]:80 in /etc/nginx/sites-enabled/example.com
原因:Link
# 所有docker-compose 命令都得在Laradock目录下执行
docker-compose exec nginx nginx -t //测试conf 文件正确性
docker-compose exec nginx nginx -s reload // 加载配置文件【官方文档未说明要执行此加载】
docker-compose up -d nginx //重启nginx
hosts
vim /etc/hosts
#添加
127.0.0.1 blog.com
6、常用命令
#进入容器工作区
docker-compose exec workspace bash //进入docker后默认看似是root,但项目在docker内部是属于laradock用户(默认),截图展示,当然也可以切换其他账户
#添加用户
adduser test// 如果提示为root账户 添加test账户
su test //切换账户 执行
#创建项目
composer create-project laravel/laravel blog //创建项目[如果docker容器内报错,就exit出来,在laradock同级下执行或导入项目]
#进入mysql
docker-compose exec mysql bash
mysql -uroot -proot
#查看启动容器
docker-compose ps
#启动停止某容器
docker-compose start/stop nginx/mysql
更多命令参考:Link
7、部分命令执行截图(顺序)
参考:Link