Docker 搭建PHP开发环境
1. Docker 简介
Docker是一个开源的引擎,可以轻松的为任何应用创建一个轻量级的、可移植的、自给自足的容器。开发者在笔记本上编译测试通过的容器可以批量地在生产环境中部署,包括VMs(虚拟机)、 bare metal、OpenStack 集群和其他的基础应用平台。
2. 为什么要使用docker
作为一种新兴的虚拟化方式,Docker 跟传统的虚拟化方式相比具有众多的优势。
- 更高效的利用系统资源
- 更快速的启动时间
- 一致的运行环境
- 持续交付和部署
- 更轻松的迁移
- 更轻松的维护和扩展
- 对比传统虚拟机总结
特性 | 容器 | 虚拟机 |
---|---|---|
启动 | 秒级 | 分钟级 |
硬盘使用 | 一般为 MB | 一般为 GB |
性能 | 接近原生 | 弱于 |
系统支持量 | 单机支持上千个容器 | 一般几十个 |
3. Docker 搭建PHP开发环境
3.1 拉取镜像
docker pull php:5.6-fpm docker pull nginx docker pull redis
3.2 创建网络
docker network create -d bridge php-net
3.3 启动容器
#启动redis docker run --name redis-web -d --network php-net -p 6380:6379 redis #启动php容器 docker run --name php-web -d --network php-net -p 9001:9000 -v {
本机项目路径}:/var/www/html php:5.6-fpm
#启动nginx 容器
docker run --name nginx-web -d --network php-net -p 80:80 -v /Users/macbook/Desktop/docker/nginx/www:/usr/share/nginx/html -v /Users/macbook/Desktop/docker/nginx/conf:/etc/nginx/conf.d nginx
#其中 #/Users/macbook/Desktop/docker/nginx/www 为本机项目路径 #/Users/macbook/Desktop/docker/nginx/conf 为nginx 配置配置文件夹
3.4 修改 nginx 配置文件
server {
listen 80; listen [::]:80; server_name localhost; #access_log /var/log/nginx/host.access.log main; location / {
root /usr/share/nginx/html;
index index.html index.htm; } #error_page 404 /404.html; # redirect server error pages to the static page /50x.html #
error_page 500 502 503 504 /50x.html; location = /50x.html {
root /usr/share/nginx/html; } # proxy the PHP scripts to Apache listening on 127.0.0.1:80 # #location ~ \.php$ {
# proxy_pass http://127.0.0.1; #} # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000 # location ~ \.php$ {
fastcgi_pass 172.18.0.3:9000; # PHP容器的 域名和端口 fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /var/www/html$fastcgi_script_name; # PHP容器的项目路径 fastcgi_param PATH_INFO $1; # TP需要path_info include fastcgi_params; } # deny access to .htaccess files, if Apache's document root # concurs with nginx's one # #location ~ /\.ht {
# deny all; #} }
3.5 安装PHP扩展
docker exec -it php-web bash cd /usr/local/bin ./docker-php-ext-install pdo_mysql ./docker-php-ext-install mysql // php7以上需要mysqli 取消了mysql 扩展 ./docker-php-ext-install bcmath ./docker-php-ext-install mbstring #相关依赖安装 apt-get update && apt-get install -y libfreetype6-dev libjpeg62-turbo-dev libmcrypt-dev libpng-dev docker-php-ext-install -j$(nproc) iconv docker-php-ext-configure gd --with-freetype-dir=/usr/include/ --with-jpeg-dir=/usr/include/ docker-php-ext-install -j$(nproc) gd apt-get install -y --no-install-recommends libgmp-dev && \ rm -r /var/lib/apt/lists/* && \ docker-php-ext-install -j$(nproc) gmp 1.curl -L -o /tmp/redis.tar.gz https://github.com/phpredis/phpredis/archive/3.1.3.tar.gz 2.tar xfz /tmp/redis.tar.gz 3.rm -r /tmp/redis.tar.gz 4.mkdir -p /usr/src/php/ext 5.mv phpredis-3.1.3 /usr/src/php/ext/redi 6.docker-php-ext-install redis Amqp: 1.apt-get install librabbitmq-dev 2.pecl install amqp 3.docker-php-ext-enable amqp
扩展参考文章
1. https://www.cnblogs.com/yinguohai/p/11329273.html
2. redis : https://www.cnblogs.com/wyaokai/p/11904701.html
3. redis: https://www.cnblogs.com/louis6575/p/12543517.html
Docker 搭建PHP开发环境
4. 补充
4.1 可能用到的 shell 命令
lsof -i :9001 #查看端口占用情况 service nginx reload #重启nginx 容器
4.2可能用到的 docker 命令
#复制本地文件到docker 容器 docker cp /Users/macbook/Desktop/docker/nginx/conf/default.conf nginx-web:/etc/nginx/conf.d/default.conf # 进入容器 docker exec -it cb6c1fe83bff(php容器ID) bash #stop停止所有容器 docker stop $(docker ps -a -q) #查看已经下载的镜像 docker image ls #删除容器 docker rm {
容器ID} #删除镜像 docker rmi {
imageID} #查看容器信息 docker inspect php01 #一次启动 nginx php redis容器(ps:推荐做法为为该命令取别名,更方便操作) docker start nginx-web php-web php-web-73 php-web-80 redis-web
到此这篇Docker 搭建PHP开发环境_docker搭建php开发环境的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!
版权声明:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若内容造成侵权、违法违规、事实不符,请将相关资料发送至xkadmin@xkablog.com进行投诉反馈,一经查实,立即处理!
转载请注明出处,原文链接:https://www.xkablog.com/hd-php/4151.html