dcoker安装nginx

部署Nginx Proxy Manager

创建一个目录用于存放Nginx Proxy Manager的配置和项目文件

1
mkdir -p /opt/docker/NginxProxyManager && cd /opt/docker/NginxProxyManager

创建一个docker-compose.yml文件

1
vim docker-compose.yml
1
2
3
4
5
6
7
8
9
10
11
12
version: '3'
services:
app:
image: 'chishin/nginx-proxy-manager-zh:release'
restart: always
ports:
- '80:80'
- '81:81'
- '443:443'
volumes:
- ./data:/data
- ./letsencrypt:/etc/letsencrypt

部署运行

1
docker-compose up -d

登录管理页面

当你的docker容器成功运行,使用浏览器访问81端口。 有些时候需要稍等一段时间。

http://ipServer:81

默认管理员信息:

1
2
Email:    admin@example.com
Password: changeme

使用这个默认用户登录后,系统会立即要求您修改详细信息和密码。

快速升级

1
2
3
docker-compose down
docker-compose pull
docker-compose up -d

这个项目将自动更新任何数据库或其他要求,所以你不必遵循任何疯狂的指示。上面的这些步骤将提取最新的更新并重新创建docker容器。

可能遇到的问题

在添加 ssl 时会遇到问题,查看日志发现报错:No module named 'zope'

image-20240226110944366

image-20240226110554712

解决方法也很简单

首先

1
docker ps

查看 CONTAINER ID

然后在容器内执行操作,例如

1
docker exec 57865785 pip install zope

安装后即可正常使用

docker 清除日志

Docker 生成的日志可以占用大量磁盘空间,因此定期清理日志是保持系统健康的好方法。这里有几种方法来清除 Docker 日志:

1. 清理 Docker 容器日志

Docker 默认将日志存储在 /var/lib/docker/containers/<容器ID>/ 目录中。可以手动清理这些日志文件:

1
sudo truncate -s 0 /var/lib/docker/containers/*/*.log

这个命令会将所有日志文件的大小设置为 0,从而清空日志内容。

2. 删除所有未使用的 Docker 资源

使用 Docker 的清理命令可以删除未使用的容器、网络、镜像和构建缓存:

1
docker system prune

如果你希望更彻底地清理所有未使用的资源,包括挂载的卷(这将删除所有未使用的卷):

1
docker system prune --volumes

3. 限制日志文件大小和保留策略

你可以通过设置 Docker 容器的日志驱动来限制日志文件的大小和保留策略。在 docker run 命令中,你可以使用 --log-opt 选项来配置日志选项。例如,使用 json-file 日志驱动限制日志文件大小和数量:

1
docker run --log-opt max-size=10m --log-opt max-file=3 my-image

这将把日志文件大小限制为 10 MB,并保留最多 3 个日志文件。

4. 调整 Docker 服务的日志配置

如果你使用的是 Docker 的 systemd 服务,你可以通过编辑 /etc/docker/daemon.json 文件来配置日志选项。你可以设置如下配置来限制日志大小和文件数量:

1
2
3
4
5
6
{
"log-opts": {
"max-size": "10m",
"max-file": "3"
}
}

编辑配置文件后,重启 Docker 服务以应用更改:

1
sudo systemctl restart docker

5. 删除旧的 Docker 镜像

有时,旧的镜像也会占用磁盘空间,可以通过以下命令删除未使用的镜像:

1
docker image prune

或删除所有未使用的镜像(要谨慎使用):

1
docker image prune -a

使用这些方法可以有效地管理和清理 Docker 的日志文件,保持系统的磁盘空间。