下載鏡像
1
2
3
4
|
docker pull mysql:5.7 docker pull php:7.2-fpm docker pull nginx docker pull redis:3.2 |
設(shè)置共享文件
宿主機(jī)創(chuàng)建目錄
1
2
3
4
5
6
7
|
E:\wnmp\mysql57\conf E:\wnmp\mysql57\log E:\wnmp\php72\conf E:\wnmp\php72\conf E:\wnmp\nginx\conf E:\wnmp\nginx\conf E:\wnmp\www |
vmware設(shè)置文件共享
如圖
設(shè)置完成在Docker Quickstart Termina 執(zhí)行 docker-machine restart default
安裝Mysql
1
|
docker run -d -p 3306:3306 -e MYSQL_ROOT_PASSWORD=root --name mysql57 mysql:5.7 |
復(fù)制配置文件
1
2
|
PS C:\Windows\system32> docker cp mysql57:/var/log/mysql E:\wnmp\mysql57\log PS C:\Windows\system32> docker cp mysql57:/etc/mysql E:\wnmp\mysql57\conf |
重新安裝mysql并指定配置文件
1
2
3
4
5
|
PS C:\WINDOWS\system32> docker stop mysql57 mysql57 PS C:\WINDOWS\system32> docker rm mysql57 mysql57 PS C:\WINDOWS\system32> docker run -d -v /wnmp/mysql57/log:/var/log/mysql/ -v /wnmp/mysql57/conf:/etc/mysql/ -p 3306:3306 -e MYSQL_ROOT_PASSWORD=root --name mysql57 mysql:5.7 |
初始化數(shù)據(jù)庫(kù)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
docker exec -ti mysql57 /bin/bash mysql_secure_installation #查看Mysql狀態(tài) root@d7bd0712bcf8:/# mysql -uroot -proot mysql: [Warning] Using a password on the command line interface can be insecure. Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 6 Server version: 5.7.28 MySQL Community Server (GPL) Copyright (c) 2000, 2019, Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. |
安裝PHP
1
|
PS C:\WINDOWS\system32> docker run -d -v /wnmp/www:/var/www/html -p 9000:9000 --link mysql57:mysql --name php72 php:7.2-fpm |
復(fù)制配置文件
1
2
3
|
PS C:\Windows\system32> docker cp php72:/usr/local/etc E:\wnmp\php72\conf PS C:\Windows\system32> docker cp php72:/usr/local/var/log E:\wnmp\php72\log PS C:\Windows\system32> docker cp php72:/var/www/html E:\wnmp\www |
重新安裝PHP并指定配置文件
1
2
3
4
5
6
7
8
9
10
11
12
|
PS C:\WINDOWS\system32> docker stop php72 php72 PS C:\WINDOWS\system32> docker rm php72 php72 docker run -d -v /wnmp/php72/conf/etc:/usr/local/etc -v /wnmp/php72/log:/usr/local/var/log -v /wnmp/www:/var/www/html -p 9000:9000 --link mysql57:mysql --name php72 php:7.2-fpm # 查看PHP版本 PS C:\Windows\system32> docker exec -ti php72 /bin/bash root@742150f14d8a:/var/www/html# php -v PHP 7.2.23 (cli) (built: Oct 5 2019 00:31:47) ( NTS ) Copyright (c) 1997-2018 The PHP Group Zend Engine v3.2.0, Copyright (c) 1998-2018 Zend Technologies Ngixn |
安裝
PS C:\WINDOWS\system32> docker run -d -p 80:80 --link php72:phpfpm --name nginx nginx:latest
復(fù)制配置文件
1
2
|
PS C:\Windows\system32> docker cp nginx:/etc/nginx/ E:\wnmp\nginx\conf PS C:\Windows\system32> docker cp nginx:/var/log/nginx/ E:\wnmp\nginx\log |
重新安裝并指定配置文件
1
2
3
4
5
6
7
8
|
PS C:\WINDOWS\system32> docker stop nginx nginx PS C:\WINDOWS\system32> docker rm nginx nginx PS C:\WINDOWS\system32> docker run -d -p 80:80 -v /wnmp/www:/var/www/html -v /wnmp/nginx/conf/nginx:/etc/nginx/ -v /wnmp/nginx/log:/var/log/nginx/ --link php72:phpfpm --name nginx nginx #瀏覽器訪問 http://192.168.99.100/ 驗(yàn)證成功 Redis docker run -p 6379:6379 -d redis:3.2 redis-server |
PHP擴(kuò)展安裝
1
2
3
4
5
6
|
redis PS C:\Windows\system32> docker exec -ti php72 /bin/bash root@742150f14d8a:/var/www/html# pecl install -o -f redis #安裝完成,加入Ini配置 此時(shí)docker下的redis配置 在 E:\wnmp\php72\conf\etc\php\conf.d\docker-php-ext-sodium.ini # 重啟php |
配置測(cè)試域名
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
|
#E:\wnmp\nginx\conf\nginx\conf.d目錄下新建test.conf #E:\wnmp\www目錄新建test目錄。目錄下新建index.php 輸出phpinfo; server { listen 80; server_name test.com; #charset koi8-r; access_log /var/log/nginx/host.access.log main; location / { root /var/www/html/test; index index.php 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$ { root /var/www/html/test; fastcgi_pass 192.168.99.100:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } # deny access to .htaccess files, if Apache's document root # concurs with nginx's one # location ~ /\.ht { deny all; } } #nginx重新加載配置 或者重啟。 #本地host解析域名test.com 訪問 顯示phpinfo正常 |
以上為所有安裝配置以及測(cè)試。當(dāng)然最后我們需要將這些docker容器加入到自動(dòng)啟動(dòng)中
1
2
3
4
|
docker container update --restart=always php72 docker container update --restart=always mysql57 docker container update --restart=always nginx docker container update --restart=always redis |
總結(jié)
以上所述是小編給大家介紹的win10 docker-toolsbox 搭建php開發(fā)環(huán)境的教程,希望對(duì)大家有所幫助,如果大家有任何疑問請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)服務(wù)器之家網(wǎng)站的支持!
如果你覺得本文對(duì)你有幫助,歡迎轉(zhuǎn)載,煩請(qǐng)注明出處,謝謝!
原文鏈接:https://segmentfault.com/a/1190000020739184