docker构建php开发环境

前言最近迷上docker了,就看用docker有什么坑没踩过的,先把项目会用到的工具用docker撸一遍,省得到时候再踩这些坑浪费时间

构建环境

centos7.9
docker 20.10.6

需要构建的开发环境

mysql8.0.23
redis6.0.6
es7.8
php7.4
swoole4
nginx-1.18

docker基本命令

docker images 查看当前有哪些镜像
docker ps 查看启动的容器
docker ps -a 查看所有容器
docker top 容器名 查看进程
docker exec -it nginx bash 进入容器
docker inspect nginx|grep IPAddress //在docker里面查找nginx ip
docker image inspect 镜像名 |grep -i verison
docker image rm 删除本地镜像
docker rm 容器
容器启动-p端口 -d后台运行–name容器名 -v映射目录 --privileged=true拥有root权限
docker run -p -d --name -v --privileged=true 镜像名
docker run -p 80:80 -d --name nginx -v /var/www/html:/docker/www -v /docker/nginx/default.conf:/etc/nginx/conf.d/default.conf --privileged=true nginx

一、安装docker

yum -y install docker

安装nginx

yum pull nginx
nginx配置文件

server {
    listen       80;
    listen  [::]:80;
    server_name  localhost;
    root   /docker/www;
    index index.php index.html;

    location / {
        try_files $uri $uri/ /index.php?$query_string;
    }
    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   /docker/www;
    }
    location ~ \.php$ {
        root           /docker/www;
        fastcgi_pass   172.18.0.6:9000;
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
        include        fastcgi_params;
    }
}

启动命令 docker run -p 80:80 -d --name nginx -v /var/www/html:/docker/www -v /docker/nginx/default.conf:/etc/nginx/conf.d/default.conf -v /nginx/logs:/var/nginx/log --privileged=true nginx

安装nginx

在这里插入图片描述
出现这个界面nginx算配好了

安装php-fpm

我们用7.4的版本
docker pull php:7.4-fpm
构建php 容器
docker run -p 9000:9000 -d -name php -v /var/www/html:/docker/www --privileged=true php:7.4-fpm
这时候在/var/www/html目录建一个index.php,然后随便输点什么,phpinfo();只要页面有输出证明成功了
在这里插入图片描述
如果报403,404,都是配置出问题了
在这里插入图片描述
注意这个ip的配置是容器内php-fpm的ip
可以用命令去查
docker inspect php|grep IPAddress
然后在docker/nginx修改一下配置重启nginx即可

安装mysql

docker pull mysql
docker run -p 3306:3306 --name mysql -v /home/mysql/my.cnf:/etc/mysql/my.cnf -e MYSQL_ROOT_PASSWORD=123456 -d mysql

安装成功后软件访问会连不上,这是因为的8.0的加密规则发生变化了,需要在数据库改加密规则
在这里插入图片描述
mysql 8 外部连接会报一下异常: Authentication plugin ‘caching_sha2_password’ cannot be loaded.

安装redis

docker pull redis
docker run -p 6379:6379 --name redis -d --privileged=true redis
服务器或防火墙打开端口即可,非常简单

安装es

老规矩
docker pull elasticsearch
但是这里却报错了
在这里插入图片描述
这是要指定版本才能下载,我直接输了个7.8,问题依旧,应该是没有这个版本号,需要到官网去看才行
docker仓库查对应elasticsearch版本下载.
我直接下载了最新的7.12.1

创建网络
如果需要安装kibana等其他,需要创建一个网络,名字任意取,让他们在同一个网络,使得es和kibana通信

docker network create esnet
docker run --name es -p 9200:9200 -p 9300:9300 --network esnet -e “discovery.type=single-node” elasticsearch:7.12.1

在这里插入图片描述
出现这个界面就安装成功了

踩坑

如果报go235,说明docker版本比较低,需要更新yum库并重装docker
解决Error response from daemon: oci runtime error: container_linux.go:247: starting container process.
如果报Error response from daemon: Unknown runtime specified docker-runc
Unknown runtime specified docker-runc.

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值