首页 > 解决方案 > Raspberry Pi 4 上的 Nginx 反向代理管理器在重启后不会自动启动

问题描述

我使用 docker 和 docker-compose 在我的 Raspberry Pi 上设置了 Jamie Curnow 的 Nginx 反向代理管理器。

这是 yml 堆栈文件:

---
version: '3'
services:
  app:
    image: 'jc21/nginx-proxy-manager:latest'
    ports:
      - '80:80' #HTTP Traffic
      - '81:81' #Dashboard Port
      - '443:443' #HTTPS Traffic
    volumes:
      - ./config.json:/app/config/production.json
      - ./data:/data
      - ./letsencrypt:/etc/letsencrypt
  db:
    image: 'jc21/mariadb-aria:10.4'
    environment:
      MYSQL_ROOT_PASSWORD: 'npm'
      MYSQL_DATABASE: 'npm'
      MYSQL_USER: 'npm'
      MYSQL_PASSWORD: 'npm'
    volumes:
      - ./data/mysql:/var/lib/mysql

(我使用不同的密码)

现在,我已经使用 .c 编写过它sudo docker-compose up -d,但是,每当我使用sudo rebootRaspberry Pi 时,它都不会作为服务启动。

这是我的树莓派内核,顺便说一句:

Linux Pi-Server 5.10.17-v7l+ #1403 SMP Mon Feb 22 11:33:35 GMT 2021 armv7l GNU/L

这是我的操作系统版本:

Distributor ID: Raspbian
Description:    Raspbian GNU/Linux 10 (buster)
Release:        10
Codename:       buster

有趣的是,每当我尝试sudo docker-compose up -d再次使用它重构它时,我都会得到以下输出:

Starting nginx_db_1  ... done
Starting nginx_app_1 ... done

之后,Curnow 先生的 Nginx 和它的 GUI 都工作了。

除了每次在启动时运行这个 docker-compose 之外,还有更奇特的方法吗?

标签: dockernginxdocker-composeraspberry-pi

解决方案


主机——docker服务级别

更新:最初的答案适用于 docker 本身。如果您希望 docker 本身也可以在启动时启动,那就另当别论。你应该能够做到这一点:

sudo systemctl enable docker.service
sudo systemctl enable containerd.service

VM -- docker 容器级别 (nginx)

您绝对可以在启动时启动 nginx 服务。

这些命令是不言自明的——启用禁用和检查启动时运行 nginx 的状态:

sudo systemctl enable nginx
sudo systemctl disable nginx
sudo systemctl status nginx

资源:

  1. 在启动时启动 Nginx
  2. 系统示例

如果您无法使用此功能,请告诉我,我将尝试寻找其他方法并更新我的答案。


推荐阅读