docker搭建php環境mysql和nginx

搭建php-nginx-mysql環境

使用mysql 5.7.29;    php 7.2.29;     nginx最新版

docker pull php:7.2.29-fpm 
docker pull mysql:5.7.29 
docker pull nginx

/var/www/docker-long.com目錄結構

mysql     # 保存mysql數據
code      # 放代碼 
nginx    # 存放nginx日誌

 

1 php依賴mysql, 所有要先運行mysql

# -e 啓動容器的時候傳參數, 設置root密碼
docker run -d --name=mysql -p 3306:3306 -v /var/www/docker-long.com/mysql/:/var/lib/mysql/ -e MYSQL_ROOT_PASSWORD=rootroot mysql:5.7.29 
# 進入查看 
docker exec -it   mysql   /bin/bash 
# 進入容器中的mysql 
mysql -uroot -p 

2 docekr php

創建一個Dockerfile, 內容如下:

FROM php:7.2.29-fpm 

RUN docker-php-ext-install pdo_mysql

docker build -t php7.2-fpm .

# docker inspect php7.2-fpm

# --link 剛纔的mysql容器id:別名; 在php代碼中不用寫ip:3308,用別名就可以 php7.2-fpm

docker run -d --name=php --link mysql:mysql -v /var/www/docker-long.com/code/:/var/www/html/ php7.2-fpm

 

3 nginx的配置

# nginx/conf.d下的default.conf內容; 注意代理是 php:9000

server {
        listen        80;
        server_name  127.0.0.1 long.com www.long.com;
        root   "/var/www/html";
        location / {
            index index.php index.html;
            autoindex  off;
        }
        location ~ \.php(.*)$ {
            fastcgi_pass   php: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;
        }
}

運行, 掛載3個目錄分別是: 網站配置, logs日誌, 代碼

docker run -d --name=nginx -p 80:80 -v /var/www/docker-long.com/nginx/conf.d/:/etc/nginx/conf.d/ -v /var/www/docker-long.com/nginx/logs/:/var/log/nginx -v /var/www/docker-long.com/code/:/var/www/html/ --link php:php nginx

 

成功ok

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章