一、nginx
1、創建conf/conf.d log www目錄分別用於放配置文件,日志文件,代碼文件,
2、docker pull nginx 獲取nginx鏡像
二、php
1、docker pull php:5.6-fpm 獲取php鏡像
2、運行php容器
docker run --name php-fpm -v /nginx/www:/www -d php:5.6-fpm -v /nginx/www:/www (將前面創建的www目錄掛載到容器的www目錄)
docker ps 查看運行的容器
可以看到這時已經有我們命名為php-fpm的容器在運行了
三、php+nginx配置
1、在之前創建的conf.d目錄下創建php-nginx.conf文件
內容
server { listen 80; server_name localhost; location / { root /usr/share/nginx/html; #代碼目錄掛在到容器中的目錄 index index.html index.htm index.php; } error_page 500 502 503 504 /50x.html; location = /50x.html { root /usr/share/nginx/html; } location ~ \.php$ { fastcgi_pass php:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME /www/$fastcgi_script_name; include fastcgi_params; } }
2、運行nginx容器
docker run --name php-nginx -p port:80 -d -v /nginx/www:/usr/share/nginx/html:ro -v /nginx/conf/conf.d:/etc/nginx/conf.d:ro --link php-fpm:php nginx
-p port:80 port替換成你想暴露在外面的端口號 它將映射到80端口上
-v /nginx/www:/usr/share/nginx/html:ro -v /nginx/conf/conf.d:/etc/nginx/conf.d:ro 以只讀的方式掛載代碼目錄和配置文件目錄
--link php-fpm:php nginx 把 php-fpm 的網絡並入 nginx,並通過修改 nginx 的 /etc/hosts,把域名 php 映射成 127.0.0.1,讓 nginx 通過 php:9000 訪問 php-fpm。
3、在nginx/www 目錄中創建index.php echo phpinfo();
四、mysql
1、拉取 mysql鏡像
docker pull mysql (將會獲取到最新的8.0版本)
2、創建 mysql/data mysql/logs mysql/conf
3 docker run -p 3307:3306 --name mysql -v /usr/sinatra/mysql/conf:/etc/mysql -v /usr/sinatra/mysql/logs:/logs -v /usr/sinatra/mysql/data:/mysql_data -e MYSQL_ROOT_PASSWORD=123456 -d mysql
-v /usr/sinatra/mysql/conf:/etc/mysql -v /usr/sinatra/mysql/logs:/logs -v /usr/sinatra/mysql/data:/mysql_data掛載之前創建好的目錄用於存放數據、日志和配置文件
-e MYSQL_ROOT_PASSWORD=123456初始化root密碼
4 docker ps 查看容器
這樣我們的環境就搭建好了