此文是我用marp展示ppt拿过来的,可能看着不太明白,抱歉,我太懒~
laradock
DIY(do it yourself)
DRY(dont repeat youself)
人生苦短,我用docker
特点
- 易组合:在PHP版本切换、数据库引擎、软件组合
- 分而治之:一个软件,一个容器,比如:PHP-FPM, NGINX, PHP-CLI…
- 可信镜像:所有镜像继承自一个官方基础镜像(Trusted base Images)
- 方便配置,且使用最新Docker Compose
- 每周都会有更新…
快速的镜像构建(GFW)
文档
docker是什么
- 2013年初开源项目,基于go语言
- 轻量级
- 操作系统虚拟化
对比传统虚拟机总结
特性 |
容器 |
虚拟机 |
启动 |
秒级 |
分钟级 |
硬盘使用 |
一般为 MB |
一般为 GB |
性能 |
接近原生 |
弱于 |
系统支持量 |
单机支持上千个容 |
一般几十个 |
三个基本概念
- 镜像(Image)
- 容器(Container)
- 仓库(Repository)
镜像是只读的,容器在启动的时候创建一层可写层作为最上层。
注意一个镜像不能超过 127 层
安装
常用命令
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
| docker images docker rmi training/sinatra docker run -t -i ubuntu:14.04 /bin/bash docker commit -m "Added json gem" -a "Docker Newbee" 0b2616b0e5a8 ouruser/sinatra:v2 docker tag 5db5f8471261 ouruser/sinatra:devel docker build ${dockerfile_dir} docker save -o ubuntu_14.04.tar ubuntu:14.04 docker load
docker ps docker rm docker inspect docker logs insane_babbage docker port CONTAINER [PRIVATE_PORT[/PROTO]] docker start|stop|restart insane_babbage docker attach insane_babbage docker export 7691a814370e > ubuntu.tar cat ubuntu.tar | sudo docker import - test/ubuntu:v1.0
docker search docker pull docker push
|
laradock的结构
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
| ├── laradock │ ├── _guides │ ├── docker-compose.yml #compose 配置 │ ├── docs │ ├── elasticsearch │ ├── hhvm │ ├── logs #nginx日志;xdebug日志 │ ├── mariadb │ ├── memcached │ ├── mongo │ ├── mysql │ ├── nginx # nginx 容器配置 │ ├── php-fpm #php-fpm 容器配置 │ ├── phpmyadmin │ ├── rabbitmq │ ├── redis │ ├── workspace #工作台 │ └── xdebugPhpFpm #动态设置 xdebug 是否启用(需 build 时先安装) └── website #网站项目 ├── afp ├── ams ├── inncms
|
彩蛋
快捷操作
docker快捷命令:.bashrc_docker
xdebug监听不变的host ip
set host ip never changed
本地dns泛解析
hosts泛解析
1 2 3
| server_name ~^(?<project>\b(?!ams\b).+)\.laradock\.dev$; root /var/www/$project/public;
|
安装操作
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
| brew install dnsmasq sudo cp -v $(brew --prefix dnsmasq)/homebrew.mxcl.dnsmasq.plist /Library/LaunchDaemons
[ -d /etc/resolver ] || sudo mkdir -v /etc/resolver sudo bash -c 'echo "nameserver 127.0.0.1" > /etc/resolver/dev'
sudo mkdir -p $(brew --prefix)/etc/ cat > $(brew --prefix)/etc/dnsmasq.conf <<-EOF listen-address=127.0.0.1 address=/.dev/127.0.0.1
strict-order EOF
sudo launchctl load -w /Library/LaunchDaemons/homebrew.mxcl.dnsmasq.plist
sudo launchctl stop homebrew.mxcl.dnsmasq sudo launchctl start homebrew.mxcl.dnsmasq sudo killall -HUP mDNSResponder
|
End
docker for mac
基于开发的一些修改(踩坑)
- git@github.com:NewbMiao/laradock.git (dev分支,master定期手动同步官方分支)
- xdebug 配置
- 全局安装composer及
hirak/prestissimo
(可加速composer)
- ssh开启 可配合phpstorm 指定CLI interpreter
- 关闭nginx
open_file_cache
- composer国内地址替换;aliyun源替换
1 2 3 4 5 6 7 8 9 10 11 12
| ## apt-get替换源 # 另外,在国内使用 docker(以 ubuntu 为例), Dockerfile 第一个执行的命令最好为: RUN sed -i 's/archive.ubuntu.com/mirrors.aliyun.com/g' /etc/apt/sources.list \ && apt-get update --fix-missing \ && apt-get -y upgrade
## composer替换源 RUN composer config -g repo.packagist composer https:
## ssh workspace(推荐还是exec方式) chmod 0600 workspace/insecure_id_rsa ssh -i workspace/insecure_id_rsa -v root@laradock.dev -p2222
|
如有疑问,请文末留言交流或邮件:newbvirgil@gmail.com
本文链接 : https://newbmiao.github.io/2017/03/14/laradock-in-action.html