使用docker lnmp镜像包部署搭建laravel项目

Royal
2021-07-16 / 0 评论 / 485 阅读 / 正在检测是否收录...
  1. #更新yum软件管理器
    
    yum -y update
  2. #安装docker
    
    yum install -y docker
  3. #配置docker加速器
    
    curl -sSL https://get.daocloud.io/daotools/set_mirror.sh | sh -s http://f1361db2.m.daocloud.io
  4. 修改docker的配置文件

    vi /etc/docker/daemon.json

    kr5p099g.png

  5. 配置一下CDN

    在/etc/resolv.conf文件中新增一个参数

    kr5p1wmo.png

  6. 然后重启docker

     service docker restart
  7. 查看docker版本确认是否安装成功

    docker version

    kr5paidf.png

  8. 搜索LNMP镜像

    docker search LNMP 

    kr5p8m0s.png
    选取stars最多的镜像作为环境

  9. 拉取镜像

    docker pull 2233466866/lnmp

    问题1 :拉取镜像时会报以下错误Get https://registry-1.docker.io/v2/: read tcp 192.168.174.128:49316->3.229.227.53:443: read: connection reset by peer
    解决 :Docker Error response from daemon: Get https://registry-1.docker.io/v2/: read tcp的问题
    首先:
    通过dig @114.114.114.114 registry-1.docker.io找到可用IP
    配置找到的可用ip:
    修改hosts文件vi /etc/hosts添加进刚才找的可用ip:

    52.87.94.70 registry-1.docker.io

    保存退出即可
    问题2 :拉取镜像太慢
    解决 :登录阿里云后,访问https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors,会看到加速器地址,复制下来,执行后面的命令。

    #编辑 /etc/docker/daemon.json 配置文件 将复制出来的阿里云加速器地址添加到json数组中
    {
      "registry-mirrors": [
        "https://hub-mirror.c.163.com",
        "https://mirror.baidubce.com"
      ]
    }
    #重启 Docker 服务
    systemctl daemon-reload 
    systemctl restart docker
    #检查是否生效
    docker info
    结果中显示了我们设置的镜像服务器地址,则说明设置已经生效

    kr63g60k.png

  10. 查看镜像是否拉取成功

    docker images

    kr64whth.png
    可以看到拉取成功!

  11. 启动容器

    docker run -it --privileged --name=lnmp -p 20016:80 -p 3306:3306  -v ~/www:/www  -v ~/lnmp-data/env/mysqlData:/data/mysql -v ~/lnmp-data/env/nginx.conf:/usr/local/nginx/conf/nginx.conf 2233466866/lnmp

    问题1 :启动容器时会报以下错误:/usr/bin/docker-current: Error response from daemon: oci runtime error: container_linux.go:235: starting container process caused "container init exited prematurely
    原因 : linux 与 docker 版本的兼容性问题,可以尝试重新安装 docker 或者升级linux内核
    解决 :第一种:yum update
    解决 :第二种:升级docker版本

    1.卸载旧版本 docker
    
    yum remove docker  docker-common docker-selinux dockesr-engine -y
    2.升级系统软件
    
    yum upgrade -y
    3.安装必要的一些系统工具
    
    sudo yum install -y yum-utils device-mapper-persistent-data lvm2
    4.添加软件源信息
    
    yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
    5.更新并安装 docker-ce
    
    yum makecache fast
    yum install docker-ce -y
    6.启动服务
    
    systemctl daemon-reload
    systemctl restart docker

    说明:

~/www 是工作目录
~/lnmp-data/env/mysqlData 是数据库目录
~/lnmp-data/env/nginx.conf 是nginx是配置文件
20016是本地端口
我的一个项目 目录是~/www/wwwroot/laravel,所以nginx.conf配置文件的内容如下:

user                    www;
worker_processes        auto;
worker_cpu_affinity     auto;
pid                     logs/nginx.pid;

events {
    worker_connections  102400;
}

http {
    charset             utf-8;
    server_tokens       off;

    log_format  main    '$remote_addr - $remote_user [$time_local] "$request" '
                        '$status $body_bytes_sent "$http_referer" '
                        '"$http_user_agent" "$http_x_forwarded_for"';

    include             mime.types;
    default_type        application/octet-stream;

    client_max_body_size 20M;

    sendfile            on;
    keepalive_timeout   20;

    gzip                on;
    gzip_vary           on;
    gzip_comp_level     1;
    gzip_types          text/css application/javascript application/json image/png image/webp image/apng image/jpeg image/x-icon;

    error_log           /www/z_error.log;
    access_log          /www/z_$host.log main;

    server {
        listen      80;
        server_name www.test.com;
        root        /www/wwwroot/laravel/public;
        index index.html index.htm index.php

        autoindex on;
        
        location / {
            index   index.php index.html index.htm;
            try_files $uri $uri/ /index.php?$query_string;
        }

        location ~* \.php {
            include                 fastcgi_params;
            fastcgi_index           index.php;
            fastcgi_pass            127.0.0.1:9000;
            fastcgi_split_path_info ^(.+\.php)(.*)$;
            fastcgi_param           PATH_INFO       $fastcgi_path_info;
            fastcgi_param           SCRIPT_NAME     $fastcgi_script_name;
            fastcgi_param           SCRIPT_FILENAME $document_root$fastcgi_script_name;
        }
    }
}

kr66px1p.png

  1. 其他命令

    docker ps -a 查看所有容器
    docker stop ******  停止运行容器
    docker rm *****  删除容器(删除前需停掉)
0

评论

博主关闭了当前页面的评论