以前在windows下一直使用vagrant作开发, 团队里面也是各类开发环境,几我的也没有统一环境,各类上线都是人肉,偶尔还会有由于开发、测试、生产环境因为软件版本或者配置不一致产生的问题, 今年准备持续玩玩docker+kubernetes下的敏捷开发模式(固然还有其它:如持续集成)php
备忘下第一步,环境搭建html
Mac下docker搭建lnmp环境 + redis + elasticsearchmysql
拉取镜像 nginx
docker pull hub.c.163.com/library/nginx:latestnginx
拉取镜像 mysql
docker pull hub.c.163.com/library/mysql:5.6redis
拉取镜像 php
docker pull hub.c.163.com/library/php:7.1-fpmsql
建立mysql容器
docker run -d -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 --name liugx_mysql56 hub.c.163.com/library/mysql:5.6
参数说明
-d 让容器在后台运行
-p 添加主机到容器的端口映射
-e 设置环境变量,这里是设置mysql的root用户的初始密码,这个必须设置
–name 容器的名字,随便取,可是必须惟一docker
建立php-fpm容器
docker run -d -v /Users/liugx/docker/data/www:/var/www/html -p 9000:9000 --link liugx_mysql56:mysql --name liugx_php71 hub.c.163.com/library/php:7.1-fpm
参数说明
-d 让容器在后台运行
-p 添加主机到容器的端口映射
-v 添加目录映射,即主机上的/Users/liugx/docker/data/www和容器中/var/www/html目录是同步的
–name 容器的名字
–link 与另一个容器创建起联系,这样咱们就能够在当前容器中去使用另外一个容器里的服务。数据库
这里若是不指定–link参数其实也是能够得,由于容易自己也是有ip的且惟一,因此咱们也能够直接利用ip去访问容器。vim
建立nginx容器
docker run -d -p 80:80 --name liugx_nginx -v /Users/liugx/docker/data/www:/var/www/html --link liugx_php71:phpfpm hub.c.163.com/library/nginx
参数说明:
-d 让容器在后台运行
-p 添加主机到容器的端口映射
-v 添加目录映射,即主机上的/Users/liugx/docker/data/www和容器中/var/www/html目录是同步的
–name 容器的名字
–link 与另一个容器创建起联系windows
后面的redis和elasticsearch直接像建立mysql数据库容器同样
docker pull hub.c.163.com/library/redis:latest
docker pull hub.c.163.com/library/elasticsearch:latest
######注意######
配置完毕后须要修改nginx配置文件(后面的步骤和日常配置相似,修改配置了重启对应的nginx容器便可生效)
主要修改内容,修改主机的根目录,若是是.php文件就转发给后端的php-fpm处理(192.168.99.100:9000)
方法:
修改nginx配置文件(进入容器):
docker exec -it liugx_nginx bash
更新软件源
apt update
安装vim
apt-get install vim
附上贴图:
链接mysql
访问php文件
nginx配置