161 lines
3.4 KiB
Markdown
161 lines
3.4 KiB
Markdown
|
|
---
|
|||
|
|
title: 🐈日志<% tp.file.title %>
|
|||
|
|
date: <% tp.date.now("YYYY-MM-DD HH:mm:ss") %>
|
|||
|
|
tags:
|
|||
|
|
- dailynote
|
|||
|
|
rating: ⭐️
|
|||
|
|
excerpt:
|
|||
|
|
created: 2025-08-30T11:45
|
|||
|
|
updated: 2025-10-24T19:29
|
|||
|
|
---
|
|||
|
|
## 1TODO
|
|||
|
|
- [ ] 多喝水,避免久坐不动
|
|||
|
|
- [ ] 今天做什么
|
|||
|
|
|
|||
|
|
## 2 Tracking
|
|||
|
|
|
|||
|
|
- 制作小苹果相册
|
|||
|
|
- 解决WatchTower使用默认镜像源更新Docker的问题
|
|||
|
|
https://club.fnnas.com/forum.php?mod=viewthread&tid=8440#authorposton93494
|
|||
|
|
教程:
|
|||
|
|
https://marrrrrrrrry.github.io/watchtower-docs/zh/container-selection/
|
|||
|
|
https://blog.csdn.net/mss359681091/article/details/147774708
|
|||
|
|
https://p3terx.com/archives/docker-watchtower.html
|
|||
|
|
|
|||
|
|
### 容器更新列表
|
|||
|
|
|
|||
|
|
假设我们只想更新 `nginx`、`redis` 这两个容器,我们可以把容器名称追加到启动命令的最后面,就像下面这个例子:
|
|||
|
|
|
|||
|
|
```none
|
|||
|
|
docker run -d \
|
|||
|
|
--name watchtower \
|
|||
|
|
--restart unless-stopped \
|
|||
|
|
-v /var/run/docker.sock:/var/run/docker.sock \
|
|||
|
|
containrrr/watchtower -c \
|
|||
|
|
nginx redis
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
博主觉得把需要更新的容器名称写在启动命令中不利于管理,于是想了个更好的方法,建立一个更新列表文件。
|
|||
|
|
|
|||
|
|
```none
|
|||
|
|
$ cat ~/.watchtower.list
|
|||
|
|
aria2-pro
|
|||
|
|
unlockmusic
|
|||
|
|
mtg
|
|||
|
|
...
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
通过变量的方式去调用这个列表:
|
|||
|
|
|
|||
|
|
```none
|
|||
|
|
docker run -d \
|
|||
|
|
--name watchtower \
|
|||
|
|
--restart unless-stopped \
|
|||
|
|
-v /var/run/docker.sock:/var/run/docker.sock \
|
|||
|
|
containrrr/watchtower -c \
|
|||
|
|
$(cat ~/.watchtower.list)
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
这样只需要调整列表后删除 Watchtower 容器并重新执行上面的命令重新启动 Watchtower 即可。
|
|||
|
|
存放点:/volume1/DataSpace/Watchtower/watchtower.list
|
|||
|
|
使用1panel更新需要更新容器的镜像来源:手动编辑,添加 docker.1ms.run/前缀
|
|||
|
|
|
|||
|
|
|
|||
|
|
测试
|
|||
|
|
docker exec watchtower /watchtower --run-once
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
## 3 Tips
|
|||
|
|
- windows删除顽固文件
|
|||
|
|
管理员登录PowerShell输入:
|
|||
|
|
Remove-Item -Path "e:\Syncthing\myPhoto" -Recurse -Force
|
|||
|
|
- docker操作权限
|
|||
|
|
对于非root用户不能访问docker信息,neoserver读取不到容器信息,需要做一些修正
|
|||
|
|
飞牛:
|
|||
|
|
|
|||
|
|
运行以下命令,检查用户是否属于 `docker` 组:
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
groups
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
如果 `docker` 不在输出中,手动添加当前用户到 `docker` 组:
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
sudo usermod -aG docker $USER
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
然后,**手动刷新用户组**(避免重新登录):
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
newgrp docker
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
再次运行:
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
groups
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
ls -l /var/run/docker.sock
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
如果输出如下:
|
|||
|
|
|
|||
|
|
```text
|
|||
|
|
srw-rw---- 1 root root 0 Feb 6 10:00 /var/run/docker.sock
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
说明 `docker.sock` 仍然属于 `root`,普通用户无法访问。修正权限:
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
sudo chown root:docker /var/run/docker.sock
|
|||
|
|
sudo chmod 666 /var/run/docker.sock
|
|||
|
|
```
|
|||
|
|
在非root用户下
|
|||
|
|
docker ps
|
|||
|
|
docker info
|
|||
|
|
测试
|
|||
|
|
|
|||
|
|
群晖:
|
|||
|
|
|
|||
|
|
sudo synogroup --add docker
|
|||
|
|
sudo synogroup --adduser <username> docker
|
|||
|
|
|
|||
|
|
sudo systemctl restart docker
|
|||
|
|
有时候以上步骤后,用户可能还是会遇到权限问题,这可能是因为 `/var/run/docker.sock`文件的权限设置不当。这时可以使用以下命令来调整权限:
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
sudo chmod 666 /var/run/docker.sock
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
但是,这种方法会使得 `docker.sock`对所有用户开放,存在安全隐患。所以更安全的做法是确保这个文件属于 `docker`组:
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
sudo chown root:docker /var/run/docker.sock
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
还有一种方式:
|
|||
|
|
|
|||
|
|
chgrp administrtors /var/run/docker.sock
|
|||
|
|
关机后又要重新输入!
|
|||
|
|
群晖:
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
## 4 Questions
|
|||
|
|
|
|||
|
|
## 5 Thoughts
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
## 6 NextDo
|
|||
|
|
|
|||
|
|
|