1. https://notemi.cn/docker-quickly-set-up-php-nginx-mysql-environment.html
    2. 1、设置docker
    3. {
    4. "registry-mirrors": [
    5. "https://ow2enw8q.mirror.aliyuncs.com" // 指定阿里镜像加速器
    6. ],
    7. "insecure-registries": [],
    8. "debug": false,
    9. "experimental": true // 设置为true,Windows需开启Hyper-V(解决错误no matching manifest for windows/amd64 10.0.18362 in the manifest list entries)
    10. }
    11. 更新安装软件:
    12. apt-get update
    13. apt-get install procps
    14. apt-get install vim
    15. apt install iputils-ping
    16. MySQL:
    17. 1docker pull mysql:5.7
    18. 2docker run \
    19. -d \
    20. -p 3306:3306 \
    21. -e MYSQL_ROOT_PASSWORD=12345678910 \
    22. -v /D/container/mysql/conf:/etc/mysql/conf.d \
    23. -v /D/container/mysql/logs:/logs \
    24. -v /D/container/mysql/data:/var/lib/mysql \
    25. --name mysql-5.7 mysql:5.7
    26. 3docker exec -it mysql /bin/bash
    27. PHP
    28. 1docker pull php:7.3-fpm
    29. 2docker run \
    30. -d \
    31. -p 9000:9000 \
    32. -v D:/code/php/soterea:/usr/share/nginx/html \
    33. --link mysql:mysql \
    34. --name php php:7.3-fpm
    35. 3docker exec -it php /bin/bash
    36. 4、安装扩展:
    37. 1、下载扩展:wget https://pecl.php.net/get/swoole-4.7.0.tgz
    38. 2、解压:tar -xvf swoole-4.7.0.tgz
    39. 3、在PHP容器中创建一个/usr/src/php的目录:docker-php-source extract
    40. 4、移动源码到指定目录:mv phpredis-5.0.2 /usr/src/php/ext/swoole
    41. 5、安装:docker-php-ext-install swoole
    42. 扩展目录:/usr/local/lib/php/extensions/no-debug-non-zts-20180731/extension=xdebug.so
    43. 6、如果安装gd库报png.h错误,则 apt-get install libpng-dev
    44. Nginx:
    45. 1docker pull nginx:latest
    46. 2docker run \
    47. -d \
    48. -p 80:80 \
    49. -v D:/code/php/soterea:/usr/share/nginx/html \
    50. -v D:/container/nginx/conf.d:/etc/nginx/conf.d \
    51. --link php:php \
    52. --name nginx nginx
    53. Composer
    54. 1curl -sS https://getcomposer.org/installer | php
    55. 2、配置全局命令:mv compose.phar /usr/local/bin/composer
    56. 3、切换国内镜像源:composer config -g repo.packagist composer https://packagist.phpcomposer.com
    57. 4、更新:composer selfupdate
    58. 拷贝文件到宿主机:
    59. docker cp nginx:/etc/nginx/nginx.conf D:/container/nginx/nginx.conf
    60. docker cp D:/container/nginx/conf.d/base.service.conf nginx:/etc/nginx/conf.d/base.service.conf
    61. docker cp D:/container/nginx/conf.d/eoms.api.conf nginx:/etc/nginx/conf.d/eoms.api.conf
    62. docker cp D:/container/nginx/conf.d/monitoring.platform.v2.conf nginx:/etc/nginx/conf.d/monitoring.platform.v2.conf
    63. docker cp D:/container/nginx/conf.d/default.conf nginx:/etc/nginx/conf.d/default.conf
    64. docker cp php:/usr/local/etc/php-fpm.conf D:/container/php/etc/php-fpm.conf // 这个文件没啥用,不用修改
    65. docker cp php:/usr/local/etc/php-fpm.d/www.conf D:/container/php/etc/php-fpm.d/www.conf
    66. docker cp php:/usr/local/etc/php/php.ini D:/container/php/etc/php/php.ini
    67. docker cp D:/container/php/etc/php-fpm.d/www.conf php:/usr/local/etc/php-fpm.d/www.conf
    68. 错误信息:Error response from daemon: filesystem operations against a running Hyper-V container are not supported
    69. 处理方式:停止容器即可
    70. 解决方法:
    71. 修改php-fpm所在容器的/etc/php-fpm.d/www.conf文件
    72. listen = 127.0.0.1:9000修改为
    73. listen = 0.0.0.0:9000
    74. docker run \
    75. -d \
    76. -p 3306:3306 \
    77. -e MYSQL_ROOT_PASSWORD=1234567890 \
    78. -v /data/docker-conf/mysql/conf:/var/lib/mysql \
    79. --name mysql mysql:5.7
    80. docker run \
    81. -d \
    82. -p 9000:9000 \
    83. -v /data/docker-conf/php73-fpm/etc:/usr/local/etc \
    84. -v /usr/share/nginx/html:/usr/share/nginx/html \
    85. --link mysql:mysql \
    86. --name php php:7.3-fpm