1. 程式人生 > >ubuntu16.04安裝docker並配置php7+nginx環境

ubuntu16.04安裝docker並配置php7+nginx環境

安裝docker

前提條件

Docker 要求 Ubuntu 系統的核心版本高於 3.10 通過 uname -r 命令檢視你當前的核心版本
ubuntu映象下載地址
本人下載的是ubuntu-16.04.5-desktop-amd64.iso 用VMware workstation15 安裝的

安裝

  1. 執行指令 apt install docker.io
  2. 安裝完成後執行 docker -v 能看到版本號說明安裝成功
    我安裝的版本號是17.03.2-ce
  3. docker的檔案目錄在# ls /var/lib/docker
  4. 安裝映象,指令: docker pull {image_name}
    因為天朝牆的原因,拉取映象時會報錯:
    Network timed out while trying to connect to
    https://index.docker.io/v1/repositories/library/nginx/images
    . You may want to check your internet connection or if you are behind a proxy.
    解決方法:
    DaoCloud 推出DaoCloud 加速器 ,通過智慧路由和快取機制,極大提升了國內網路訪問 Docker Hub 的速度,並得到了 Docker 官方的大力推薦。
    註冊道客雲賬號,檢視並執行你的加速器程式碼
    #curl -sSL https://get.daocloud.io/daotools/set_mirror.sh | sh -s
    http://你的地址.m.daocloud.io

    #service docker restart
    檢視加速器
  5. 依次安裝nginx和php-fpm
    docker pull nginx
    docker pull php:7.1.0-fpm
    #docker images 檢視已安裝的所有映象
    檢視安裝的映象
  6. 建立相關目錄
mkdir -p  /home/docker/www			主機網站根目錄
mkdir -p /home/docker/nginx/conf.d		主機nginx配置檔案目錄
  1. 執行php和nginx
# docker run  -p 80:80 --name mynginx -v /home/docker/nginx/conf.d:/etc/nginx/conf.d  -v /home/docker/www:/usr/share/nginx/html --privileged=true -d nginx
# docker run -p 9000:9000 --name myphp -v /home/docker/www/:/var/www/html/ --privileged=true -d php:7.1.0-fpm 
run 指令引數:
-p: 				埠對映,格式為:主機(宿主)埠:容器埠
--name="xxx" 			為容器指定一個名稱;
-v /xxx:/yyy 			主機的目錄 /xxx 對映到容器的/yyy
--privileged=true 		以特權方式啟動容器 
-d		 		後臺執行容器,並返回容器ID;


  1. 建立nginx配置檔案

檢視myphp在docker中的IP,我的是172.17.0.2,配置nginx時會用到

# docker inspect --format='{{.NetworkSettings.IPAddress}}' myphp

編輯nginx配置檔案

#vim /home/docker/nginx/conf.d/default.conf 
server {  
	listen  80 default_server;  
	server_name localhost;
  	root   /usr/share/nginx/html; 
 	 location / {   
 		 index index.html index.htm index.php;   
 	 }  
	  location ~ \.php(.*)$ {  
	  	root   /var/www/html/;   
	  	fastcgi_pass 172.17.0.2:9000;  		#172.17.0.2是剛才用指令查詢出來的IP 
	 	fastcgi_index index.php;   
	  	fastcgi_split_path_info ^(.+\.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; 
 	 }
 }
  1. 測試是否配置成功
#echo <?php phpinfo();       >      /home/docker/www/info.php
訪問http://192.168.1.65/info.php   
192.168.1.65是docker所在主機IP地址

docker 常用指令

# docker ps 					檢視容器執行的列表
# docker ps -a					檢視所有容器列表
# docker images 				檢視所有映象
# docker pull  <映象名>				拉取映象
# docker stop  <container_id|names>		停止某個容器
# docker start <container_id|names>		啟動某個容器
# docker restart <container_id|names>		重啟某個容器
# docker rm  <container_id|names>		刪除已停止的容器
# docker rm <container_id|names>  -f		刪除執行中的容器
# docker stats					檢視docker記憶體佔用等執行狀態
# docker exec -it <container_id|names>  /bin/bash	在容器中開啟一個互動模式的終端,exit退出