Docker Contos 搭建 PHP 環境
- uname -r //CentOS 系統的核心版本高於 3.10 ,檢視本頁面的前提條件來驗證你的CentOS 版本是否支援 Docker
-
- yum -y install docker-io //安裝docker
- service d ocker start //啟動
-
映象加速 網易映象地址
- vi /etc/docker/daemon.json //新增映象
{ "registry-mirrors": ["http://hub-mirror.c.163.com"] }
- 安裝 Nginx
- docker pull nginx //拉取官方映象
- docker images //檢視
- docker run -p 80:80 -d --name mynginx -v /docker/www:/usr/share/nginx/www nginx //開啟nginx應用容器
-p 80:80:將容器的80埠對映到主機的80埠 -d 後臺執行(守護程式) --name mynginx:將容器命名為mynginx -v 將主機中當前目錄下的www掛載到容器的www目錄
- docker ps -a //檢視容器啟動情況
- Docker 安裝 PHP
- docker pull php:7.2-fpm //拉取官方PHP映象
- docker images //檢視
- docker run -p 9000:9000 -d --name myphp-fpm -v /docker/www:/usr/share/nginx/www php:7.1-fpm //開啟php-frm應用容器
- docker ps -a //檢視容器啟動情況
- docker inspect myphp-fpm | grep "IPAddress" //檢視ip資訊
"SecondaryIPAddresses": null,
"IPAddress": "172.17.0.3",
"IPAddress": "172.17.0.3",
[root@localhost ~]# docker exec -it mynginx bash //進入容器
vi /etc/nginx/conf.d/default.conf //修改配置檔案
然後使用ctrl + p + q退出容器,使用exit的話會讓容器停止。 -
docker cp mynginx:/etc/nginx/conf.d/default.conf ./default.conf
在宿主機修改配置檔案的php部分,內容如下:server { listen 80; server_name localhost; #charset koi8-r; #access_log /var/log/nginx/host.access.log main; location / { root /usr/share/nginx/html; 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 html; fastcgi_pass 172.17.0.3:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME /usr/share/nginx/www$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; #} }
- docker cp ./default.conf mynginx:/etc/nginx/conf.d/default.conf
- docker exec -it mynginx bash //進入容器中
- root@3218b3ad4e47:/# service nginx reload //重新載入nginx配置檔案
- echo "<?php echo phpinfo();" > index.php //寫phpinfo檔案測試
訪問成功