一分一毛也是爱

微信

微信

支付宝

支付宝

观海听潮

观海听潮博客

登录
还没有账号?去注册
观海听潮

观海听潮博客

注册
×

我的名片

网名:观海听潮

职业:PHP开发工程师

现居:山东省-青岛市

Email:1256699215@qq.com

网站统计

  • 观海听潮•博客
  • 78篇
  • 149条
  • 176908次
  • 370次
  • 美国弗吉尼亚州

您现在的位置是:首页  > 技术杂谈  > php  > docker docker

观海听潮

windows10下docker搭建php环境

摘要
上文介绍了安装docker,本文主要讲docker在本地如何搭建php环境,由于是第一次搭建测试,所以安装的都是最新的版本,mysql8.0,php7.4,nginx。

1、配置阿里云镜像

登录阿里云后台,容器镜像服务-->镜像中心-->镜像加速器

截图.png

打开docker面板Settings部分更改

截图 (1).png

2、拉取镜像

php

docker pull php:7.4-fpm-alpine3.12

mysql

docker pull mysql:latest

nginx

docker pull nginx:latest

小注:具体镜像版本可以登录https://hub.docker.com/搜索

3、在本地新建目录

我的是在D盘新建wnmp目录,在该目录下新建

D:\wnmp\mysql8.0\conf 
D:\wnmp\mysql8.0\log 
D:\wnmp\nginx\conf 
D:\wnmp\nginx\log 
D:\wnmp\php74\conf 
D:\wnmp\php74\log 
D:\wnmp\www

4、运行容器且映射到本地

1)、mysql

运行容器,将3306端口映射到33061上面,初始密码:123456

docker run -d -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 --name mysql mysql:latest

小注:因为本地3306端口被占用,除非关掉自启动的mysql服务,所以这边映射成其他端口

复制mysql文件到本地

docker cp mysql:/var/log/mysql D:\wnmp\mysql8.0\log 
docker cp mysql:/etc/mysql D:\wnmp\mysql8.0\conf

小注:/var/log/mysql如果不存在,可以忽略这条命令

删除之前的mysql容器,必须先停止才能删除

docker stop mysql   
docker rm mysql

重新运行映射到本地的容器,将3306端口映射到33061上面,初始密码:123456

docker run -d -v :\wnmp\mysql-8.0\log:/var/log/mysql/ -v D:\wnmp\mysql8.0\conf:/etc/mysql/ -p 33061:3306 -e 
MYSQL_ROOT_PASSWORD=123456 --name mysql mysql:latest

检验是否运行成功

docker ps

如果没有,则运行失败,需要删除运行失败的容器,然后自行解决问题

查看所有的容器

docker container ls -all

进入容器

docker exec -it mysql /bin/bash

mysql初始化命令

mysql_secure_installation

参考文档:https://blog.csdn.net/u013931660/article/details/79443061

登录mysql

mysql -u root -p

更改加密方式(mysql8新特性)

ALTER USER 'root'@'localhost' IDENTIFIED BY '123456'; ALTER USER 'root'@'localhost' IDENTIFIED WITH 
mysql_native_password BY '123456';

也可以创建一个新用户

CREATE USER 'docker'@'%' IDENTIFIED WITH mysql_native_password BY '123456'; GRANT ALL PRIVILEGES
 ON *.* TO 'docker'@'%';

刷新

flush privileges; 
exit;

安装VIM编辑器

apt update 
apt-get install vim

尝试连接

关闭mysql服务,例如phpstudy

截图 (2).png

主机:localhost

端口:映射的端口号 33061

用户名:root或者新创建的用户docker

密码:123456

2)、php

运行容器

docker run -d -v D:\wnmp\www:/var/www/html -p 9000:9000 --link mysql --name php74 php:7.4-fpm-alpine3.12

复制php文件到本地

docker cp php74:/usr/local/etc D:\wnmp\php74\conf 
docker cp php74:/usr/local/var/log D:\wnmp\php74\log 
docker cp php74:/var/www/html D:\wnmp\www

删除php容器

docker stop php74 
docker rm php74

重新运行映射到本地的php容器

docker run -d -v D:\wnmp\php74\conf:/usr/local/etc -v D:\wnmp\php74\log:/usr/local/var/log -v D:\wnmp\www:/var/www
 -p 9000:9000 --link mysql:mysql --name php74 php:7.4-fpm-alpine3.12

进入容器

docker exec -it php74 sh

安装VIM编辑器

apt update 
apt-get install vim

3)、nginx

运行容器

docker run -d -p 80:80 --link php74:phpfpm --name nginx nginx:latest

复制nginx文件到本地

docker cp nginx:/etc/nginx/ D:\wnmp\nginx\conf 
docker cp nginx:/var/log/nginx/ D:\wnmp\nginx\log

删除nginx容器

docker stop nginx 
docker rm nginx

重新运行映射到本地的nginx容器

docker run -d -p 80:80 -v D:\wnmp\www:/var/www -v D:\wnmp\nginx\conf:/etc/nginx/ -v 
D:\wnmp\nginx\log:/var/log/nginx/ --link php74:phpfpm --name nginx nginx

5、本地连接

更改配置文件D:\wnmp\nginx\conf\conf.d\default.conf

server {    
    listen       80;    
    server_name  localhost;    
    root   /var/www/;    
    index  index.html index.php index.htm;    
    access_log /var/log/nginx/access.log;    
    error_log /var/log/nginx/error.log;    
    location / { 
        autoindex on;    
    }    
    location ~ \.php$ {         
        fastcgi_pass   172.17.0.1:9000;         
        fastcgi_index  index.php;         
        fastcgi_split_path_info  ^((?U).+\.php)(/?.+)$;         
        fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;         
        fastcgi_param  PATH_INFO  $fastcgi_path_info;         
        fastcgi_param  PATH_TRANSLATED  $document_root$fastcgi_path_info;         
        include                         fastcgi_params;         
    #   try_files $uri = 404;    
    }    
#   location ~ /\.(ht|svn|git) {        
#       deny all;    
#   }
}

小注:fastcgi_pass 的ip地址为容器的ip地址,一般都是这个地址

在D:\wnmp\www目录下新建index.php文件

<?
php phpinfo();

在浏览器访问localhost

截图 (3).png

6、安装php扩展

暂定。。。。


讨厌 (0)
微博logo QQ空间logo QQlogo 豆瓣logo 人人logo 百度贴吧logo 有道云笔记logo

文章评论

表情表情
×
图片图片

评论列表