linux docker踩坑日记 2020.7.15

这篇博客记录了作者在Linux环境中使用Docker遇到的挑战,主要问题集中在Nginx无法正确处理PHP文件导致404错误,以及Nginx与php-fpm用户权限配置不一致。作者尝试了修改配置文件、更改权限等多种解决方案,并强调了不要盲目复制网上的解答,而应查找官方文档。最终,通过查阅文档解决了问题,还涉及了Docker常用命令的使用、docker-compose的安装和版本升级。
摘要由CSDN通过智能技术生成

linux docker踩坑日记 2020.7.15

卡住已经好几天了,今天也没解决。
问题一:(核心问题)搭建好的nmp环境只能读取静态文件,php文件会报错404.查看了nginx错误日志,发现fastcgi*4 FastCGI sent in stderr: "Primary script unknown" while reading response header from upstream 有问题
问题二:根据第一个问题,百度查到 1.修改nginx的配置文件(无效,试了100遍) 2.更改权限(由此引发第二个问题)==》nginx.conf中user 是nginx;php-fpm.d/www.conf中的user group 是www-data 需要把他们改成一样的,但是,一旦更改www.conf中的用户,那整个php容器无法启动(找不到解决办法)
备注:网上抄袭真的很严重,搜索到的答案经常一摸一样,真的垃圾又解决不了问题。
收获:熟悉了linux中docker 的一些常用命令 ps:可以闭着眼敲了
可用命令:
[root@localhost ~]# yum update
[root@localhost ~]# yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo 更改yum源到阿里云

安装依赖包,查看docker版本并选择一个安装
[root@localhost ~]# yum install -y yum-utils device-mapper-persistent-data lvm2
[root@localhost ~]# yum list docker-ce --showduplicates | sort -r
[root@localhost ~]# yum install docker-ce-18.06.1.ce
启动docker并加入开机启动
[root@localhost ~]# systemctl start docker
[root@localhost ~]# systemctl enable docker

接下来就 docker search mysql 搜索需要的镜像文件
docker pull mysql:5.7 选择合适的镜像文件拉取下来
docker images 查看当前拉取的镜像文件
docker rmi imageid 删除镜像文件
docker run -d -p 3307:3306 -e MYSQL_ROOT_PASSWORD=123456 --name mysql5.7 mysql:5.7 运行容器
docker exec -it mysql5.7 /bin/bash 进入容器
docker rm mysql5.7删除容器 删除容器前要先stop
docker stop mysql5.7 停止容器 restart重启容器

docker run -d -p 80:80 --name nginx-php-mysql -v /docker/www:/var/www/html -v /docker/nginx/conf.d/default.conf:/etc/nginx/conf.d/default.conf -v /docker/nginx/logs:/var/log/nginx --link php-mysql --privileged=true nginx
挂载目录 虚拟机 /docker/www 下的文件和 php-mysql 容器内部的 /var/www/html 关联起来

-d 让容器在后台运行 
-p 添加主机到容器的端口映射,主机端口3307映射到容器mysql3306端口
 -e 设置环境变量,这里是设置mysql的root用户的初始密码,这个必须设置
 --name 容器的名字,随便取,但是必须唯一,这里mysql5.7 就是我起的名字
 -t 在容器里生产一个伪终端
 -i 对容器内的标准输入 (STDIN) 进行交互
-v 文件目录挂载 格式:主机目录:容器目录       重点::不要把容器内有文件的目录   和  外部主机的空目录挂载在一起,否则容器该目录下的文件会被清空

7.16号 解决了
https://www.runoob.com/docker/docker-install-php.html 重要的事情说三遍:找文档,找文档,找文档。先找官方文档,次之菜鸟

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值