ubuntu 使用 docker-compose安装LNMPR

安装docker

官网搬运:在 Ubuntu 上安装 Docker 引擎 |码头工人文档

 一、设置存储库 

        1. 更新软件包索引并安装软件包以允许使用 基于 HTTPS 的存储库

sudo apt-get update
sudo apt-get install ca-certificates curl gnupg

        2. 添加 Docker 的官方 GPG 密钥

sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
sudo chmod a+r /etc/apt/keyrings/docker.gpg

        3. 使用以下命令设置存储库

echo \
  "deb [arch="$(dpkg --print-architecture)" signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
  "$(. /etc/os-release && echo "$VERSION_CODENAME")" stable" | \
  sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

        二、安装 Docker 引擎

        1. 更新包索引

sudo apt-get update

        2. 安装 Docker Engine、containerd 和 Docker Compose

sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

        3. 通过运行映像验证 Docker 引擎安装是否成功

sudo docker run hello-world

        出现以下代表docker安装成功

安装docker-compose

        1. 更新及安装

sudo apt-get update
sudo apt-get install docker-compose-plugin

        2. 检验是否安装成功

docker compose version

        出现版本号代表成功

        3. 设置Docker Group,为了能在非sudo模式下使用Docker, 需要将当前用户加入Docker Group.

sudo usermod -aG docker $USER

设置Docker镜像加速

sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://XXXXXXXX.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker

        上方XXXX,去阿里云搜索:镜像容器服务,再点击左边菜单:镜像工具 -> 镜像加速器查看

docker compose 部署

        1. 准备好docker-compose.yaml

version: "3.7"

services:
  nginx:
    container_name: "lnmp_nginx"
    image: nginx:1.24
    restart: always
    ports:
      - "80:80"
      - "443:443"
    #depends_on:
    #  - "php"
    volumes:
      - /docker-lnmp/nginx/conf.d:/etc/nginx/conf.d
      - /docker-lnmp/nginx/log:/var/log/nginx
      - /www:/usr/share/nginx/html
    environment:
      - TZ=Asia/Shanghai
      - MYSQL_ROOT_PASSWORD=123456
  mysql:
    container_name: "lnmp_mysql"
    image: mysql:5.7
    ports:
      - "3306:3306"
    volumes:
      - /docker-lnmp/mysql/data:/var/lib/mysql
      - /docker-lnmp/mysql/conf.d:/etc/mysql/conf.d
      - /docker-lnmp/mysql/log:/var/log/mysql
    restart: always
    environment:
      - TZ=Asia/Shanghai
      - MYSQL_ROOT_PASSWORD=123456
  php:
    build:
      context: ./php
    container_name: "lnmp_php"
    #image: php:7.4-fpm
    ports:
      - "9000:9000"
    volumes:
      - /www:/var/www/html
      - /docker-lnmp/php/phpfile:/usr/local/etc/php
      - /docker-lnmp/php/phpfile/conf.d:/usr/local/etc/php/conf.d
      - /docker-lnmp/php/log:/var/log/php
    restart: always
    #stdin_open: true
    #tty: true
    environment:
      - TZ=Asia/Shanghai
  redis:
    container_name: "lnmp_redis"
    image: redis:5
    ports:
      - "6379:6379"
    volumes:
      #- D:\docker-lnmp\redis\conf:/usr/local/etc/redis
      - /docker-lnmp/redis/data:/data
      #- D:\docker-lnmp\redis\log:/var/log/redis
    restart: always
    #command:
      #redis-server /usr/local/etc/redis/redis.conf --requirepass 123456
    environment:
      - TZ=Asia/Shanghai

        2. 到指定路径,执行下面命令

docker compose up -d

        

遇到错误:

Err:1 http://deb.debian.org/debian bullseye InRelease Could not connect to deb.debian.org:80 (151.101.110.132), connection timed out
Err:2 http://deb.debian.org/debian-security bullseye-security InRelease Unable to connect to deb.debian.org:80:

        方法一 :编辑/etc/apt/sources.list文件(需要使用sudo), 在文件最前面添加以下条目(操作前请做好相应备份)

# deb http://snapshot.debian.org/archive/debian/20211220T000000Z bullseye main
deb http://deb.debian.org/debian bullseye main
# deb http://snapshot.debian.org/archive/debian-security/20211220T000000Z bullseye-security main
deb http://security.debian.org/debian-security bullseye-security main
# deb http://snapshot.debian.org/archive/debian/20211220T000000Z bullseye-updates main
deb http://deb.debian.org/debian bullseye-updates main

        方法二:参考 https://developer.aliyun.com/mirror/debian 修改尝试

        方法三:在build 安装扩展前执行


RUN mv /etc/apt/sources.list /etc/apt/sources.list.bak && \
echo "deb https://mirrors.aliyun.com/debian/ bullseye main non-free contrib" >/etc/apt/sources.list && \
echo "deb-src https://mirrors.aliyun.com/debian/ bullseye main non-free contrib" >/etc/apt/sources.list && \
echo "deb https://mirrors.aliyun.com/debian-security/ bullseye-security main" >/etc/apt/sources.list && \
echo "deb-src https://mirrors.aliyun.com/debian-security/ bullseye-security main" >/etc/apt/sources.list && \
echo "deb https://mirrors.aliyun.com/debian/ bullseye-updates main non-free contrib" >/etc/apt/sources.list && \
echo "deb-src https://mirrors.aliyun.com/debian/ bullseye-updates main non-free contrib" >/etc/apt/sources.list && \
echo "deb https://mirrors.aliyun.com/debian/ bullseye-backports main non-free contrib" >/etc/apt/sources.list && \
echo "deb-src https://mirrors.aliyun.com/debian/ bullseye-backports main non-free contrib" >/etc/apt/sources.list

远程输入IP时,发现404错误;把/etc/nginx/conf.d/default.conf修改成下面;服务器和容器访问问题

server {
    listen       80;
    listen  [::]:80;
    server_name  localhost;
    
    location / {
        root /usr/share/nginx/html;
        index index.html index.htm index.php ;
    }

    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root /www;
    }
}

使用windows安装docker时可能遇到问题

1. windows上docker的IP特别慢;

        开启opcache | 修改cifs内核模块 | 不使用挂载,直接文件同步到docker


2. 能访问HTML,访问不了PHP,主要是ngxin里的server【$document_root】解析失败

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值