Docker Desktop:Settings -> Resources -> Proxies -> ✅ Manual proxy configuration
镜像
推荐使用:毫秒镜像
其他汇总:目前国内可用Docker镜像源汇总(截至2025年1月) - CoderJia
通过 docker compose 的方式进行部署,所有的compose.yml
以及容器的数据都存储在一个文件夹下的不同 container 名称对应的文件夹下面,最终生成大概如下的数据结构:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
| 📂docker
├── 📂allinone
│ └── 📄compose.yml
├── 📂allinone_format
│ ├── 📄compose.yml
│ └── config
├── 📂ddns-go
│ └── 📄compose.yml
├── 📂moviepilot
│ ├── 📄compose.yml
│ ├── 📂config
│ └── 📂core
├── 📂portainer-ce
│ ├── 📄compose.yml
│ └── 📂data
├── 📂qbittorrent
│ ├── 📂appdata
│ └── 📄compose.yml
└── 📂qinglong
├── 📄compose.yaml
└── 📂data
|
另外,我这里遇到的问题比较特殊,这里也列举出来,我是在 Win11 安装的 Docker Desktop,然后出于一些原因又安装了WSL2( Ubuntu 24.04.1 LTS)
并且集成了 WSL integration,然后在 WSL 上面部署了一些 Docker 项目,这就导致了我的 compose.yml 很乱,绝对路径和相对路径两种写法混杂,另外 windows 的路径和 Ubuntu 的路径也都有,很不方便未来的迁移,于是我统一了 compose 文件中关于路径的处理,相关的流程如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
| ### 在 Windows PowerShell(管理员权限)中执行
mkdir C:\opt\docker
[Environment]::SetEnvironmentVariable("DOCKER_DIR", "C:\opt\docker", "User")
### 在 WSL 终端中执行
echo 'export DOCKER_DIR="/mnt/c/opt/docker"' >> ~/.bashrc
source ~/.bashrc
### WSL中执行迁移(假设原WSL项目在 /home/kiwi4814/docker/ )
sudo rsync -avh --progress /home/kiwi4814/docker/ /mnt/c/opt/docker/
sudo rm -rf ~/docker
### 在 Windows 验证迁移结果
dir C:\opt\docker
### 修改 compose.yml 文件
volumes:
- "${DOCKER_DIR}/project_name/config:/config"
- "${DOCKER_DIR}/project_name/data:/data"
- "${DOCKER_DIR}/common:/shared"
### 验证 - windows
cd C:\opt\docker\project_name
docker-compose up -d
docker exec moviepilot cmd /c "dir C:\config"
### 验证 - WSL
cd /mnt/c/opt/docker/moviepilot
docker-compose up -d
docker exec -it moviepilot ls /config
### Docker项目迁移并重启
# 清理旧容器(保留数据卷)
docker compose down
# 这里是更新的命令,不更新则不执行
docker-compose pull
# 强制重建容器(使用新配置)
docker compose up -d --force-recreate
# 查看启动日志
docker-compose logs -f --tail=100
|
此外,在执行完上面的步骤之后,建议到 WSL 下去执行Docker容器的启动,因为有一些映射的绝对路径仍然必须使用 Ubuntu 下的绝对路径,比如使用 cifs-utils 挂载了 SMB 硬盘的路径以及 docker的套接字 /var/run/docker.sock
等等。
在上一步把所有的 docker 配置及数据都存储在一个地方之后,就可以利用各种网盘的同步功能进行备份了,也可以用restic等开源项目来备份。
日志
镜像
portainer-ce:docker管理工具,汉化版
containrrr/watchtower:自动更新Docker镜像
jeessy2/ddns-go:自动解析DNS,绑定域名
whyour/qinglong):青龙面板
golang-reverseproxy :Jrebel破解
漫画:komga
音乐:navidrome
影视:Plex、jellyfin、jellyfin特供版
IPTV:youshandefeiyang/allinone+FanchangWang/allinone_format
zzsrv/openwrt:PassWall & OpenClash,基于ImmortalWrt OpenWrt-23.05(每日更新)。
piaoyizy/openwrt-x86:基于Lean-X86最新源码编译,集成ssrplus+,openclash,passwall,