Wednesday, February 13, 2019

docker: nginx + php

下載docker images
docker pull nginx
docker pull bitnami/php-fpm

運行php-fpm和nginx,使用/var/www/html作為host的網頁目錄,不用進入docker進行修改
docker run -d -v /var/www/html:/usr/share/nginx/html --name php-fpm docker.io/bitnami/php-fpm
docker run -d --name nginx -p 8888:80 -v /var/www/html:/usr/share/nginx/html docker.io/nginx

檢查是否運行,以及IP位置
docker ps -a
docker inspect --format='{{.Name}} - {{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' $(docker ps -aq)

Option 1: 進入nginx修改網頁IP位置,不想在container裏面裝vi的話看下一步。
docker exec -it nginx /bin/bash
vi /etc/nginx/conf.d/default.conf

Option 2: 可以複製出來再修改
docker cp nginx:/etc/nginx/conf.d/default.conf ./
vi default.conf
修改後再放回去
docker cp ./default.conf  nginx:/etc/nginx/conf.d/default.conf

修改這幾項,填入上一步查詢到的IP,其他保留︰
service_name = [[NGINX_IP]];
location / {
   root  /usr/share/nginx/html;
   index  index.php index.html index.htm;
}
location ~ \.php$ {
   fastcgi_pass   [[PHP_FPM_IP]]:9000;
   fastcgi_index  index.php;
   fastcgi_param  SCRIPT_FILENAME  /usr/share/nginx/html$fastcgi_script_name;
   fastcgi_param  SCRIPT_NAME      $fastcgi_script_name;
   include        fastcgi_params;
}

重啓nginx即可成功。
docker restart nginx

使用host的IP + 8888 port就可以訪問。
例如192.168.199.2:8888



中間筆記 不用理:

進入container
docker exec -it myNginx /bin/bash
離開
ctrl+p+q



docker run --restart=always --name mysql -v /etc/localtime:/etc/localtime:ro -p 3306:3306 -v /works/db:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=rootroot -e MYSQL_DATABASE=test_project -e MYSQL_USER=project -e MYSQL_PASSWORD=12345678 -d mysql/mysql-server:5.5

docker run --restart=always --name php-fpm_5.2 -v /etc/localtime:/etc/localtime:ro -v /works/www:/works/www --link mysql:db -d helder/php-5.2

docker run --restart=always --name nginx -v /etc/localtime:/etc/localtime:ro -p 80:80 -e NGINX_SITE_ROOT=/works/www -v /works/www:/works/www -v /works/nginx/log:/var/log/nginx/ --link php-fpm_5.2:phpfpm -d nginx

No comments: