Docker搭建开发环境(Nginx+MySQL+PHP)

醉酒当歌 提交于 2020-01-07 15:43:58
================================================MySQL====================================================================
创建并运行MySQL容器:
docker run 
--name mysql 
-e MYSQL_ROOT_PASSWORD=root 
-p 33267:3306 
--privileged=true 
-v ~/Web/mysql/data:/var/lib/mysql 
-v ~/Web/mysql/conf:/etc/mysql/conf.d 
-v ~/Web/mysql/mysql_sock:/var/run/mysqld 
--restart=always 
-d 
mysql:5.7

命令解释:
–name mysql 指定容器名称为 mysql
-e MYSQL_ROOT_PASSWORD=123456 初始化 root 用户的密码为 123456
-p 33267:3306 将容器的 3306 端口映射到主机的 33267 端口
--privileged=true 给容器加上特定权限,否则有可能出现常见容器失败的情况
-v ~/web/mysql/data:/var/lib/mysql 将主机 ~/web/mysql/data 目录挂载到容器的 /var/lib/mysql
-v ~/web/mysql/conf:/etc/mysql/conf.d 将主机 ~/web/mysql/conf/my.cnf 挂载到容器的 /etc/mysql/my.cnf
-v ~/web/mysql/mysql_sock:/var/run/mysqld 将主机 ~/web/mysql/mysql_sock 目录挂载到容器的 /var/run/mysqld (为防止 php 容器无权限读取 mysql 容器的 sock 文件)
-d 后台运行

docker run --name mysql -e MYSQL_ROOT_PASSWORD=root -p 33267:3306 --privileged=true -v ~/Web/mysql/data:/var/lib/mysql -v ~/Web/mysql/conf:/etc/mysql/conf.d -v ~/Web/mysql/mysql_sock:/var/run/mysqld --restart=always -d mysql:5.7

--restart=on-failure:5  最多重启五次

===============================================PHP========================================================================
创建并运行PHP容器:
docker run 
--name php 
-p 9000:9000 
--privileged=true 
-v ~/Web/www/:/var/www/html 
-v ~/Web/mysql/mysql_sock/:/var/run/mysqld --link mysql:mysql 
--restart=always 
-d 
php:7.2-fpm

命令解释:
–name php5.4 指定容器的名称为 php5.4
-p 9000:9000 将容器的 9000 端口映射到主机的 9000 端口
-v ~/web/www:/var/www/html 将主机的 ~/web/www 目录挂载到容器的 /var/www/html 目录
-v ~/web/mysql/mysql_sock:/var/run/mysqld 将主机
~/web/mysql/mysql_sock 目录挂载到容器的 /var/run/mysqld (为防止 php 容器无权限读取
mysql 容器的 sock 文件)
–link mysql:mysql 将 mysql 容器的网络并入 php7.2 容器,实现容器间的通信
-d 保持后台运行

 
查看PHP的扩展
cd /usr/src/php/ext/

安装扩展
docker-php-ext-install [扩展名称]

docker run --name php -p 9000:9000 --privileged=true -v ~/Web/www/:/var/www/html -v ~/Web/mysql/mysql_sock/:/var/run/mysqld --link mysql:mysql --restart=always -d php:7.2-fpm

===================================================nginx=======================================================================
创建并运行Nginx容器:
docker run 
--name nginx 
-p 80:80  
--privileged=true 
-v ~/Web/www:/usr/share/nginx/html 
-v ~/Web/nginx/conf.d:/etc/nginx/conf.d 
--link php:php 
--restart=always 
-d 
nginx

docker run --name nginx -p 80:80  --privileged=true -v ~/Web/www:/usr/share/nginx/html -v ~/Web/nginx/conf.d:/etc/nginx/conf.d --link php:php --restart=always -d nginx

nginx配置文件

server {
    listen       80;
    server_name  www.test.loc;

    location / {
        root   /usr/share/nginx/html/wwwroot/jianyan74rf/web/;
        index index.php index.html index.htm;
    }

    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   /usr/share/nginx/html/wwwroot/jianyan74rf/web/;
    }

    location ~ \.php$ {
        fastcgi_pass   php:9000;
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME  /var/www/html$fastcgi_script_name;
        include        fastcgi_params;
    }
}
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!