关于docker的详细安装与原理不做过多介绍, 我一般只用nginx+php+mysql开发用, 因为之前有几套不同版本的代码所以用docker来解决
我这里直接在docker下使用容器来关联的 并没有单独安装系统 因为本地开发 装系统在装插件会占很大内存
- mysql 我一般习惯先装mysql 这样按顺序往下执行
docker pull mysql:5.6
安装mysql5.6
运行mysql
docker run -itd --name mysql-dev -p 33060:3306 --privileged=true -e MYSQL_ROOT_PASSWORD=123456 742f7d5a4104
--name 起一个名字不和存在的容器重复 因为本地还有3306端口占用所有换了一个端口 --privileged=true 使用root权限 后边是密码 742f7d5a4104这个是镜像的id 可以使用 docker images 查看刚下载的mysql镜像id
运行后出现一串字符串则运行成功了
- 安装php7.2
docker pull php:7.2-fpm
docker run --name shop-php -d -p 9000:9000 -v /Users/gly/Desktop/work/php/tpshop:/var/www/html --link mysql-dev bfa9828f1dc3
关联上边的mysql-dev启动 设置好路径映射
- 安装nginx
docker pull nginx
docker run --name shop-nginx -d -p 10000:80 -v /Users/gly/Desktop/work/php/tpshop:/usr/share/nginx/html --link shop-php --volumes-from shop-php c7460dfcab50
关联php运行映射端口号10000 关联项目路径
这时候还需要修改nginx配置文件
location / {
root /usr/share/nginx/html;
index index.html index.htm index.php;
try_files $uri $uri/ /index.php?$query_string;
}
location ~ \.php$ {
root html;
fastcgi_pass shop-php:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME
/var/www/html$fastcgi_script_name;
include fastcgi_params;
}
shop-php:9000 是修改后的
docker cp /Users/gly/Desktop/work/docker/default.conf shop-nginx:/etc/nginx/conf.d/default.conf
docker restart nginx
替换配置文件 重启nginx
运行项目php还需要安装扩展
docker exec -i -t shop-php /bin/bash 以终端模式进入php
php -m 查看扩展
docker-php-ext-install pdo_mysql
安装yaf扩展
RUN pecl install yaf-3.0.8 && docker-php-ext-enable yaf
配置入口路径
root /usr/share/nginx/html/public;
fastcgi_param SCRIPT_FILENAME /var/www/html/public$fastcgi_script_name;
获取容器内ip
docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' 容器name或id
修改php.ini 直接在下边增加ini文件就可以了
yaf-php:/usr/local/etc/php/conf.d/yaf.ini
docker 常用的命令
docker pull 拉取镜像
docker images 列出本地镜像
docker ps 显示正在运行的容器
docker ps -a 显示所有容器
docker rm 容器名 删除容器
docker inspect --format='{{.NetworkSettings.IPAddress}}' 容器名称|容器id 查看容器ip
docker cp 目录 容器:目录 复制文件
docker start/restart/stop 容器名 启动/重启/停止 容器
docker exec -i -t 容器名 /bin/bash 终端形式进入容器 exit 退出容器命令
docker php 安装扩展 pecl install yaf-3.0.8 && docker-php-ext-enable yaf 类似方法 (正常可以先执行后边,有的php已经安装了 像pdo_mysql直接执行后边就可以了 如果不好用在前面的)
修改php.ini 直接在下边增加ini文件就可以了
容器名称:/usr/local/etc/php/conf.d/myphp.ini
修改mysql配置 /etc/mysql/my.cnf
mysql -uroot -p123456 进入mysql操作
分享一个docker配置读写分离的文章我测试过了没有问题
重启 php 与 nginx 至此配置完毕 本人也是刚开始使用, 如果问题提出来大家一起验证