docker安装nginx+php7+mysql+redis

1、下载镜像

#docker pull nginx
#docker pull php:7.1.0-fpm

2、建立docker映射目录

#mkdir -p /docker/www
#mkdir -p /docker/nginx/conf.d

3、编辑nginx配置文件

#vim /docker/nginx/conf.d/default.conf
 
# 以下为示例内容
server {
  listen  80 default_server;
  server_name _;
  root   /usr/share/nginx/html;
 
  location / {
   index index.html index.htm index.php;
   try_files $uri $uri/ /index.php$is_args$query_string;
   autoindex off;
  }
  location ~ \.php(.*)$ {
   root   /var/www/html/;
   fastcgi_pass 172.17.0.2:9000;
   fastcgi_index index.php;
   fastcgi_split_path_info ^((?U).+\.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;
  }
}

4、启动PHP镜像

docker run -p 9000:9000 --name myphp -v /docker/www/:/var/www/html/ --privileged=true -d php:7.1.0-fpm
 
#查看php镜像的ip地址
docker inspect --format='{{.NetworkSettings.IPAddress}}' myphp
 
172.17.0.2
 
#修改default.conf配置文件,使fastcgi_pass的值为 172.17.0.2:9000

vi /docker/nginx/conf.d/default.conf

fastcgi_pass 172.17.0.2:9000;

5、启动nginx镜像

docker run -p 80:80 --name mynginx -v /docker/www:/usr/share/nginx/html -v /docker/nginx/conf.d:/etc/nginx/conf.d --privileged=true -d nginx

6、测试Nginx和php是否正常

echo "test" > /docker/www/index.html
echo "  /docker/www/info.php

#使用localhost或IP地址访问看是否显示正常

说明:docker 启动是使用一个或多个 -v 参数,使容器内的目录映射到宿主机上,每次修改不必进入宿主机操作  

7、mysql 和redis/memcached等涉及数据存储的应用不安装docker容器内,防止容器删除数据丢失

mysql
#sudo apt-get install mysql-server
#sudo apt isntall mysql-client

redis
#sudo apt-get install redis-server
#sudo service redis-server start

8、php docker容器安装php相应的拓展

#进入运行中的容器
#docker exec -it IMAGEID /bin/bash
#docker-php-ext-install bcmath dba exif mysqli pdo_mysql sysvsem sysvshm pdo_mysql 

#验证
#php -m | grep -i 'mysql' 

#添加端口映射
iptables -t nat -A DOCKER -p tcp --dport 8001 -j DNAT --to-destination 172.17.0.19:8000

 

 

你可能感兴趣的:(Docker)