ubuntu16.04安装docker并配置php7+nginx环境

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/bizu005/article/details/83588305

安装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退出

猜你喜欢

转载自blog.csdn.net/bizu005/article/details/83588305
今日推荐