安装docker+nginx+php
2020-11-27 本文已影响0人
晓函
安装
-
执行指令 apt install docker.io
-
安装完成后执行 docker -v 能看到版本号说明安装成功
我安装的版本号是17.03.2-ce -
docker的文件目录在# ls /var/lib/docker
-
依次安装nginx和php-fpm
docker pull nginx
docker pull php:7.1.0-fpmdocker 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.222.123.65/info.php
192.222.123.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退出