curl -sSL http://acs-public-mirror.oss-cn-hangzhou.aliyuncs.com/docker-engine/internet | sh -
如果你想让 Docker 在非root用户下,执行如下命令
sudo usermod -aG docker vagrant
打开网址 https://dev.aliyun.com/search.html
点击管理中心
针对Docker客户端版本大于1.10的用户
您可以通过修改daemon配置文件/etc/docker/daemon.json来使用加速器:
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://batv91n6.mirror.aliyuncs.com"]//这里选择你的
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
docker-compose在群共享中下载
sudo mv docker-compose-Linux-x86_64 /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
解压到Vagrant根目录下,方便Vagrant中可以直接进入
因workspace下的Dockerfile使用到auth.json,但目前版本中缺失,手工创建 auth.json输入如下内容
{
"bitbucket-oauth": {},
"github-oauth": {
"github.com": "4044ca68a839e1d5e7631dcd297533f8765aa37d"
},
"gitlab-oauth": {},
"http-basic": {}
}
启动需要的容器
docker-compose up -d nginx mysql redis
说明: workspace
和 php-fpm
将运行在大部分实例中, 所以不需要在 up
命令中加上它们.
进入Laravel应用目录
composer install
php artisan key:generate
chmod -R 777 storage bootstrap/cache
进入 Workspace 容器,需要在LaraDock目录下执行
docker-compose exec workspace bash
这里解释一下 假设 laraDock 在laravel项目根目录下,运行 容器后,
docker-compose exec workspace bash
进入 /var/www/ 你会发现这里面有你的laravel 项目
这就是docker-compose.yml 映射到父级目录 的解释
/var/www中就会有laravel 中的文件。
举例中这种方式不太方便,因为不可能把每个laravel项目中都放一个laradock,所以我们可以在vagrant目录下放一个laradock,也就和你的多个laravel项目在同级目录下,然后改一下nginx映射目录配置 在\laradock\nginx\sites下的 default中配置
listen 80 default_server;//把default_server去掉
server_name www.wanghao90.xin;//配置域名
root /var/www/goods/public;//配置目录,goods:laravel项目
然后重新启动容器就可以了 简单重启命令 方法 看文章最下方
这里 所有 docker-compose 命令必须在 laradock目录执行才有效
数据库配置在mysql下的Dockerfile中查看
ARG MYSQL_DATABASE=homestead
ARG MYSQL_USER=homestead
ARG MYSQL_PASSWORD=secret
ARG MYSQL_ROOT_PASSWORD=root
env中连接docker中的mysql
进行如下配置
DB_HOST=mysql
停止所有
sudo docker stop $(docker ps -a -q)
删除所有容器
sudo docker rm $(docker ps -a -q)
删除所有镜像
sudo docker rmi $(docker images -q)
默认运行PHP-FPM 7.0版本.
切换版本 PHP 7.0
到 PHP 5.6
1 - 打开 docker-compose.yml
。
2 - 在PHP容器的 Dockerfile-70
文件。
3 - 修改版本号, 用Dockerfile-56
替换 Dockerfile-70
这里如果你的 vagrant 环境里已经装有了 Nginx mysql redis等服务 会出现端口 冲突问题
方法一 卸掉(不过听说liunx 卸载很麻烦,有时候还卸载不干净)
方法二所以直接停掉或者 你在装一个 纯净版的 ubuntu
ERROR: for nginx Cannot start service nginx: driver failed programming external connectivity on endpoint laradock_nginx_1 (ee9c5205c6850384b4578c2ad0f310e4e9f2d543ec82f13fcb44b10bf5308e17): Error starting userland proxy: listen tcp 0.0.0.0:80: bind: address already in use
ERROR: for redis Cannot start service redis: driver failed programming external connectivity on endpoint laradock_redis_1 (805c3fc771a19133387578d843d87dda2802ccf22c973adb6e80cb981986af7d): Error starting userland proxy: listen tcp 0.0.0.0:6379: bind: address already in use
ERROR: for mysql Cannot start service mysql: driver failed programming external connectivity on endpoint laradock_mysql_1 (5192d2a5af81fcead44e9e065d2ad67cc5f3d00f24bcc339bfcad8e82868799d): Error starting userland proxy: listen tcp 0.0.0.0:3306: bind: address already in use
ERROR: Encountered errors while bringing up the project.
vagrant@ubuntu-xenial:/vagrant/mydocker/laradock$ netstat -tnl
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN
tcp 0 0 127.0.0.1:6379 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN
tcp 0 0 127.0.0.1:9000 0.0.0.0:* LISTEN
tcp6 0 0 :::2222 :::* LISTEN
tcp6 0 0 :::22 :::* LISTEN
//看.. 这里 3306 9379 80 都被占了
sudo service nginx stop
sudo service redis stop
sudo service mysql stop
sudo service php7.0-fpm stop
vagrant@ubuntu-xenial:/vagrant/mydocker/laradock$ netstat -tnl
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN
tcp6 0 0 :::2222 :::* LISTEN
tcp6 0 0 :::22 :::* LISTEN
//端口都关掉了
vagrant@ubuntu-xenial:/vagrant/mydocker/laradock$ docker-compose up -d nginx mysql redis
Starting laradock_redis_1
Starting laradock_applications_1
Starting laradock_mysql_1
laradock_workspace_1 is up-to-date
laradock_php-fpm_1 is up-to-date
Starting laradock_nginx_1
/执行成功了
docker-compose 只能在laradock目录下执行才有效,很不方便
小技巧 快速简单便捷操作命令的 来看看
cd ~
vim .bashrc
//在末尾加上(目录看清楚,写自己的,我的laradock在vagrant下)
alias up='cd /vagrant/laradock && docker-compose up -d mysql nginx redis'
alias stop='cd /vagrant/laradock && docker-compose stop mysql nginx redis'
alias restart='cd /vagrant/laradock && docker-compose restart'
alias exec='cd /vagrant/laradock && docker-compose exec workspace bash'
alias 后 写简写的命令
然后 退出系统 重新连接一下
你会惊奇发现
可以在 任何目录下执行 up 就相当于执行 docker-compoer up -d mysql nginx redis
exec(进入workspace) stop(停止) restart(重启)
1.启动终端Terminal
2. 进入当前用户的home目录
输入cd ~
创建.bash_profile
输入touch .bash_profile
4. 编辑.bash_profile文件
输入open -e .bash_profile
然后在输入上面的 几个快捷键设置的命令就可以了
5. 保存文件,关闭.bash_profile
6. 更新刚配置的环境变量
输入source .bash_profile //编译一下
都可以 通过 这几个简写 执行,是不是很方便
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!