DOCKER
Docker是一个虚拟环境容器,可以将你的开发环境、代码、配置文件等一并打包到这个容器中,并发布和应用到任意平台中。使用docker可以快速搭建transmission(bt下载),nextcloud(网盘)等服务。
Docker+图形界面portainer
以下操作以debian系统为基础
安装Docker
卸载旧版:
1 | sudo apt-get remove docker docker-engine docker.io containerd runc |
安装准备:
1 | sudo apt-get update |
添加GPD key:
1 | curl -fsSL https://download.docker.com/linux/debian/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg |
安装docker:
1 | echo \ |
1 | sudo apt-get update |
利用image验证docker是否安装成功(非必要):
1 | sudo docker run hello-world |
卸载Docker
卸载Docker Engine, CLI, 和 Containerd packages
1 | sudo apt-get purge docker-ce docker-ce-cli containerd.io |
删除 all images, containers, 和 volumes
1 | sudo rm -rf /var/lib/docker |
安装portainer
1 | docker pull portainer/portainer-ce #将安装包下到服务器中 |
至此已经安装好docker和portainer了,登录 http://(服务器ip):9000
设置账号密码后进入portainner,管理服务器上的docker
安装mariaDB+nextcloud
nextcloud是网盘,开发者来自德国,完全开源免费,有着不亚于百度盘的界面,还可以同步手机数据到网盘上。nextcloud需要配合数据库mariaDB来使用。
安装mariaDB
进入portainer->Networks
添加自定义网络,取个名字不用设置参数直接创建
进入Stack
以下配置会同时在 Docker 中部署 MariaDB 和 Adminer 两个应用容器,在执行一键部署之前,在上一步已经创建好了手动创建一个名为 mynet(随便一个名字)
的桥接类型网络。
1 | #请将配置中的 `ROOT_ACCESS_PASSWORD` |
创建数据库
完成后进入http://(服务器ip):8080
输入:
- 系统:MYSQL
- 服务器:mariadb
- 用户名:root
- 密码:配置文件中
MYSQL_ROOT_PASSWORD
项的值
点击创建数据库
数据库名称nextcloud utf8mb4_general_ci 点击保存
注意事项
volume路径可以在服务器上创建新文件夹自己指定路径,否则docker自动分配路径
LinuxServer 维护的 Docker 镜像都有 PUID
和 PGID
这两个环境变量,他们主要用来设置挂载到容器中的存储的所有权。填0则表示是root,UID表示用户,GID表示用户组,可以在服务器中输入id
查看当前用户的UID和所在用户组GID,输入id (用户名)
可以查看特定用户的UID和GID
设置中端口,例如:
1 | ports: |
安装NextCloud
进入Stack
添加:
1 | --- |
配置nextcloud
完成后进入:http://(服务器ip):443 (444,详情看注意)
上面填入自定义用户名密码
下面配置数据库选MySQL/MariaDB
- 数据库用户:root
- 数据库密码:之前设置过的
- 数据库名:nextcloud
- 数据库主机:mariadb
点击安装完成
注意
443端口被占用则改前面的端口配置,如改成444
安装transmission
进入portainer->Container->Add container
对照transmission项目添加参数
1 | environment: |
建议把/downloads
加进nextcloud的/data/用户名
下
使用注意事项
除了在nextcloud中上传的文件,其他的文件,如服务器端中的文件无法被读取到网盘中,造成了transmission下载的文件不能直接从nextcloud中读取到。
应对方法如下:
进入服务器后输入代码即可扫描nextcloud下的所有文件
1 | docker exec -u 1000 nextcloud php /config/www/nextcloud/occ files:scan --all |
建议将这项操作添加到定时表中,这样就不用每次下载都要亲自输一遍代码去扫描了
1 | #创建sh文件到指定文件如 |