ubuntu16.04安裝docker並配置php7+nginx環境
阿新 • • 發佈:2018-11-05
安裝docker
前提條件
Docker 要求 Ubuntu 系統的核心版本高於 3.10 通過 uname -r 命令檢視你當前的核心版本
ubuntu映象下載地址
本人下載的是ubuntu-16.04.5-desktop-amd64.iso 用VMware workstation15 安裝的
安裝
- 執行指令 apt install docker.io
- 安裝完成後執行 docker -v 能看到版本號說明安裝成功
- docker的檔案目錄在# ls /var/lib/docker
- 安裝映象,指令: docker pull {image_name}
因為天朝牆的原因,拉取映象時會報錯:
Network timed out while trying to connect to
解決方法:
DaoCloud 推出DaoCloud 加速器 ,通過智慧路由和快取機制,極大提升了國內網路訪問 Docker Hub 的速度,並得到了 Docker 官方的大力推薦。
註冊道客雲賬號,檢視並執行你的加速器程式碼
#curl -sSL https://get.daocloud.io/daotools/set_mirror.sh | sh -s
#service docker restart
- 依次安裝nginx和php-fpm
docker pull nginx
docker pull php:7.1.0-fpm
#docker images 檢視已安裝的所有映象
- 建立相關目錄
mkdir -p /home/docker/www 主機網站根目錄
mkdir -p /home/docker/nginx/conf.d 主機nginx配置檔案目錄
- 執行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;
- 建立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;
}
}
- 測試是否配置成功
#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退出