访问镜像网站:
分类: docker
-
aliyundrive-webdav
aliyundrive-webdav
Help me to become a full-time open-source developer by sponsoring me on GitHub阿里云盘 WebDAV 服务,主要使用场景为配合支持 WebDAV 协议的客户端 App 如 Infuse、nPlayer 等实现在电视上直接观看云盘视频内容, 支持客户端 App 直接从阿里云盘获取文件播放而不经过运行本应用的服务器中转, 支持上传文件,但受限于 WebDAV 协议不支持文件秒传。
请注意:V2 版本基于阿里云盘开放平台接口实现,不再支持阿里云盘 Web 和 App 版本获取的 refresh token。 由于本项目作者不再使用梅林固件,V2 版本不再免费支持 Koolshare 梅林固件系统,如有需要请考虑付费支持。
如果项目对你有帮助,请考虑捐赠支持项目持续维护。 也可以考虑加入aliyundrive-webdav 知识星球获取咨询和技术支持服务。
Note
本项目作者没有上传需求, 故上传文件功能测试不全面且没有持续迭代计划.
安装
可以从 GitHub Releases 页面下载预先构建的二进制包, 也可以使用 pip 从 PyPI 下载:
pip install aliyundrive-webdav
如果系统支持 Snapcraft 比如 Ubuntu、Debian 等,也可以使用 snap 安装:
sudo snap install aliyundrive-webdav
OpenWrt 路由器
GitHub Releases 中有预编译的 ipk 文件, 目前提供了 aarch64/arm/mipsel/x86_64/i686 等架构的版本,可以下载后使用 opkg 安装,以 nanopi r4s 为例:
wget https://github.com/messense/aliyundrive-webdav/releases/download/v2.3.3/aliyundrive-webdav_2.3.3-1_aarch64_generic.ipk wget https://github.com/messense/aliyundrive-webdav/releases/download/v2.3.3/luci-app-aliyundrive-webdav_2.3.3_all.ipk wget https://github.com/messense/aliyundrive-webdav/releases/download/v2.3.3/luci-i18n-aliyundrive-webdav-zh-cn_2.3.3-1_all.ipk opkg install aliyundrive-webdav_2.3.3-1_aarch64_generic.ipk opkg install luci-app-aliyundrive-webdav_2.3.3_all.ipk opkg install luci-i18n-aliyundrive-webdav-zh-cn_2.3.3-1_all.ipk
其它 CPU 架构的路由器可在 GitHub Releases 页面中查找对应的架构的主程序 ipk 文件下载安装, 常见 OpenWrt 路由器 CPU 架构如下表(欢迎补充):
路由器 CPU 架构 nanopi r4s aarch64_generic 小米 AX3600 aarch64_cortex-a53 斐讯 N1 盒子 aarch64_cortex-a53 Newifi D2 mipsel_24kc Pogoplug arm_mpcore Tips: 不清楚 CPU 架构类型可通过运行
opkg print-architecture命令查询。
Docker 运行
docker run -d --name=aliyundrive-webdav --restart=unless-stopped -p 8080:8080 \ -v /etc/aliyundrive-webdav/:/etc/aliyundrive-webdav/ \ -e REFRESH_TOKEN='your refresh token' \ -e WEBDAV_AUTH_USER=admin \ -e WEBDAV_AUTH_PASSWORD=admin \ messense/aliyundrive-webdav
其中,
REFRESH_TOKEN环境变量为你的阿里云盘refresh_token,WEBDAV_AUTH_USER和WEBDAV_AUTH_PASSWORD为连接 WebDAV 服务的用户名和密码。QNAP 威联通 NAS
QNAP 插件
qnap-aliyunpan-webdav by @iranee.
ContainerStation (Docker)
管理员登陆 NAS 后安装 ContainerStation 并启动服务,在 Management (管理) 标签中 Create Application (新建应用),配置如下
version: '3.3' services: aliyundrive-webdav: container_name: aliyundrive-webdav restart: unless-stopped ports: - '8080:8080' environment: - 'REFRESH_TOKEN=mytoken...' image: messense/aliyundrive-webdav其中
REFRESH_TOKEN文档最下面说明;:8080网盘访问映射端口,可以按需改为其他的。点击 Create (创建)后启动,访问 http://nas地址:8080/ 即可看到你网盘的自动生成索引网页文件。
参考文档
rclone
为了避免重复上传文件,使用 rclone 时推荐使用 Nextcloud WebDAV 模式,可以支持 sha1 checksums. 另外需要配合
--no-update-modtime参数,否则 rclone 为了更新文件修改时间还是会强制重新上传。举个例子:
rclone --no-update-modtime copy abc.pdf aliyundrive-nc://docs/
获取 refresh token
- 通过在线工具获取 refresh token
- 命令行运行
aliyundrive-webdav qr login扫码授权后会输出 refresh token

命令行用法
$ aliyundrive-webdav --help WebDAV server for AliyunDrive Usage: aliyundrive-webdav [OPTIONS] aliyundrive-webdav <COMMAND> Commands: qr Scan QRCode help Print this message or the help of the given subcommand(s) Options: --host <HOST> Listen host[env: HOST=]
[default: 0.0.0.0]
-p, –port <PORT> Listen port
[env: PORT=]
[default: 8080]
–client-id <CLIENT_ID> Aliyun drive client_id
[env: CLIENT_ID=]
–client-secret <CLIENT_SECRET> Aliyun drive client_secret
[env: CLIENT_SECRET=]
–drive-type <DRIVE_TYPE> Aliyun drive type
[env: DRIVE_TYPE=]
Possible values: – resource: Resource drive – backup: Backup drive – default: Default drive -r, –refresh-token <REFRESH_TOKEN> Aliyun drive refresh token
[env: REFRESH_TOKEN=]
-U, –auth-user <AUTH_USER> WebDAV authentication username
[env: WEBDAV_AUTH_USER=]
-W, –auth-password <AUTH_PASSWORD> WebDAV authentication password
[env: WEBDAV_AUTH_PASSWORD=]
-I, –auto-index Automatically generate index.html -S, –read-buffer-size <READ_BUFFER_SIZE> Read/download buffer size in bytes, defaults to 10MB
[default: 10485760]
–upload-buffer-size <UPLOAD_BUFFER_SIZE> Upload buffer size in bytes, defaults to 16MB
[default: 16777216]
–cache-size <CACHE_SIZE> Directory entries cache size
[default: 1000]
–cache-ttl <CACHE_TTL> Directory entries cache expiration time in seconds
[default: 600]
–root <ROOT> Root directory path
[env: WEBDAV_ROOT=]
[default: /]
-w, –workdir <WORKDIR> Working directory, refresh_token will be stored in there if specified –no-trash Delete file permanently instead of trashing it –read-only Enable read only mode –tls-cert <TLS_CERT> TLS certificate file path
[env: TLS_CERT=]
–tls-key <TLS_KEY> TLS private key file path
[env: TLS_KEY=]
–strip-prefix <STRIP_PREFIX> Prefix to be stripped off when handling request
[env: WEBDAV_STRIP_PREFIX=]
–debug Enable debug log –no-self-upgrade Disable self auto upgrade –skip-upload-same-size Skip uploading same size file –prefer-http-download Prefer downloading using HTTP protocol –redirect Enable 302 redirect when possible -h, –help Print help (see a summary with ‘-h’) -V, –version Print version
[env: HOST=]
[default: 0.0.0.0]
-p, –port Listen port
[env: PORT=]
[default: 8080]
–client-id Aliyun drive client_id
[env: CLIENT_ID=]
–client-secret Aliyun drive client_secret
[env: CLIENT_SECRET=]
–drive-type Aliyun drive type
[env: DRIVE_TYPE=]
Possible values: – resource: Resource drive – backup: Backup drive – default: Default drive -r, –refresh-token Aliyun drive refresh token
[env: REFRESH_TOKEN=]
-U, –auth-user WebDAV authentication username
[env: WEBDAV_AUTH_USER=]
-W, –auth-password WebDAV authentication password
[env: WEBDAV_AUTH_PASSWORD=]
-I, –auto-index Automatically generate index.html -S, –read-buffer-size Read/download buffer size in bytes, defaults to 10MB
[default: 10485760]
–upload-buffer-size Upload buffer size in bytes, defaults to 16MB
[default: 16777216]
–cache-size Directory entries cache size
[default: 1000]
–cache-ttl Directory entries cache expiration time in seconds
[default: 600]
–root Root directory path
[env: WEBDAV_ROOT=]
[default: /]
-w, –workdir Working directory, refresh_token will be stored in there if specified –no-trash Delete file permanently instead of trashing it –read-only Enable read only mode –tls-cert TLS certificate file path
[env: TLS_CERT=]
–tls-key TLS private key file path
[env: TLS_KEY=]
–strip-prefix Prefix to be stripped off when handling request
[env: WEBDAV_STRIP_PREFIX=]
–debug Enable debug log –no-self-upgrade Disable self auto upgrade –skip-upload-same-size Skip uploading same size file –prefer-http-download Prefer downloading using HTTP protocol –redirect Enable 302 redirect when possible -h, –help Print help (see a summary with ‘-h’) -V, –version Print version” tabindex=”0″ role=”button” style=”box-sizing: border-box; position: relative; display: flex !important; padding: 0px !important; font-size: 14px; font-weight: var(–base-text-weight-medium, 500); line-height: 20px; white-space: nowrap; vertical-align: middle; cursor: pointer; user-select: none; border: 0px; border-radius: 6px; appearance: none; color: var(–fgColor-accent, var(–color-accent-fg)); background-color: transparent; box-shadow: none; transition: color 80ms cubic-bezier(0.33, 1, 0.68, 1) 0s, background-color, box-shadow, border-color; justify-content: center !important; align-items: center !important; margin: var(–base-size-8, 8px) !important; width: var(–control-small-size, 28px); height: var(–control-small-size, 28px);”>
Note
注意:TLS/HTTPS 暂不支持 MIPS 架构。
Note
注意:启用
--skip-upload-same-size选项虽然能加速上传但可能会导致修改过的同样大小的文件不会被上传License
This work is released under the MIT license. A copy of the license is provided in the LICENSE file.
-
docker 容器启动限制日志大小
docker run -d --name=wxedge --restart=always --privileged --net=host --tmpfs /run --tmpfs /tmp -v /storage:/storage:rw --log-opt max-size=10m --log-opt max-file=3 onething1/wxedge -
Docker Registry web-ui 部署
- Registry web-ui 获取
docker pull hyper/docker-registry-web编辑配置文件 vim RegistryWebUi/config.yml
registry: # Docker registry url url: http://ip:端口/v2 # Docker registry fqdn name: localhost:端口 # To allow image delete, should be false readonly: false auth: # Disable authentication enabled: false ##如果不需要分用户权限设置,推荐选择false- Registry web-ui 运行
docker run -d -p 10082:8080 --name registry-web --link myRegistry -v $(pwd)/RegistryWebUi/:/conf/:ro hyper/docker-registry-web:latest * --link myRegistry 这边的myRegistry是我之前搭建的docker仓库容器的名字 * 之前搭建docker仓库的命令是: ocker run -p 31000:5000 --restart=always -itd --privileged=true -v /hardDisk_sdd/registry:/var/lib/registry --name myRegistry -v /etc/localtime:/etc/localtime registry:latest- Registry 设置
sudo docker exec -it myRegistry /bin/sh cd /etc/docker/registry vi config.yml 加入 delete: # To allow image delete enabled: trueversion: 0.1 log: level: info formatter: text fields: service: registry environment: OfficeProduction storage: cache: blobdescriptor: inmemory filesystem: rootdirectory: /var/lib/registry delete: # To allow image delete enabled: true http: addr: :31000 headers: X-Content-Type-Options: [nosniff] health: storagedriver: enabled: true interval: 10s threshold: 3- 重启 myRegistry
sudo docker restart myRegistry -
Docker registry API
查询catalog
sudo curl -k -XGET https://www.registry.com/v2/_catalog查询tags
sudo curl -k -XGET https://www.registry.com/v2/<image>/tags/list删除镜像
# 查询镜像是否存在,以及tags sudo curl -k -XGET https://user:passwd@www.registry.com/v2/debian/tags/list # 获取digest参数 sudo curl -v --silent -H "Accept: application/vnd.docker.distribution.manifest.v2+json" -XGET -k https://user:passwd@www.registry.com/v2/debian/manifests/jessie 2>&1 | grep Docker-Content-Digest | awk '{print $3}' # 根据digest进行删除 sudo curl -X DELETE -k https://user:passwd@www.registry.com/v2/debian/manifests/sha256:a4a28eee3eb9698fef895484b2dbf1a2179e0f7b23408f5ebfc39b30bab031b4 # 数据清理 sudo docker exec registry /bin/registry garbage-collect /etc/docker/registry/config.yml sudo docker exec registry rm -rf /data/docker/registry/v2/respositories/debian -
Docker tag 命令
语法
docker tag [OPTIONS] IMAGE[:TAG] [REGISTRYHOST/][USERNAME/]NAME[:TAG]
实例
将镜像ubuntu:15.10标记为 runoob/ubuntu:v3 镜像。
root@runoob:~# docker tag ubuntu:15.10 runoob/ubuntu:v3 root@runoob:~# docker images runoob/ubuntu:v3 REPOSITORY TAG IMAGE ID CREATED SIZE runoob/ubuntu v3 4e3b13c8a266 3 months ago 136.3 MB
-
DOCKER portainer-ce中文版
源码仓库https://github.com/eysp/portainer-ce
其中arm和ppc64le架构没有设备测试,反馈bug 到GitHub issues
pull的已数量突破100K,我不懂编程,对此我由衷的高兴,想看预览图的点这里https://www.right.com.cn/forum/thread-4066518-1-1.html
在这里感谢大家的支持,已更新到2.16.2,没有大版本的更新我暂时不会更新了,欢迎大家进q群交流,群号758648462(备注portainer)
感谢群里@我不是矿神 指导js精简 | @52Fancy 提供编译脚本
一键安装代码**
docker run -d --restart=always --name="portainer" -p 9000:9000 -v /var/run/docker.sock:/var/run/docker.sock 6053537/portainer-ce163镜像安装,portainer-ce中文,访问dockerhub网速不好的尝试
docker run -d --restart=always --name="portainer" -p 9000:9000 -v /var/run/docker.sock:/var/run/docker.sock hub-mirror.c.163.com/6053537/portainer-ce访问hub.docker.com网络慢,或者以上代码都无法安装成功尝试以下代码
docker pull hub-mirror.c.163.com/6053537/portainer-ce docker run -d --restart=always --name="portainer" -p 9000:9000 -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data 6053537/portainer-ceLicensing
Portainer is licensed under the zlib license. See LICENSE for reference.
Portainer also contains code from open source projects. See ATTRIBUTIONS.md for a list.
-
清理或删除docker无用镜像的操作方法
目录清除docker无用镜像一、查看docker占用的资源二、只删除那些未被使用的资源1、通过标签删除镜像2、通过ID删除镜像3、删除镜像的限制4、清理镜像PS:docker批量删除无用的容…
目录
清除docker无用镜像
一、查看 docker 占用的资源
二、只删除那些未被使用的资源
1、通过标签删除镜像
2、通过 ID 删除镜像
3、删除镜像的限制
4、清理镜像
PS:docker 批量删除无用的容器或镜像清除docker无用镜像
一、查看 docker 占用的资源
在进行资源清理之前我们有必要搞清楚 docker 都占用了哪些系统的资源。这需要综合使用不同的命令来完成。
docker container ls:默认只列出正在运行的容器,-a 选项会列出包括停止的所有容器。
docker image ls:列出镜像信息,-a 选项会列出 intermediate 镜像(就是其它镜像依赖的层)。
docker volume ls:列出数据卷。
docker network ls:列出 network。
docker info:显示系统级别的信息,比如容器和镜像的数量等。
通过这些命令查看 docker 使用的资源情况后,相信你已经决定要清理 docker 占用的一些资源了!让我们先从那些未被使用的资源开始。
二、只删除那些未被使用的资源
Docker 提供了方便的 docker system prune 命令来删除那些已停止的容器、dangling 镜像、未被容器引用的 network 和构建过程中的 cache:
$ docker system prune
使用以下命令清理已经停止运行的docker容器
docker rm $(docker ps --all -q -f status=exited)
1、通过标签删除镜像
通过如下两个都可以删除镜像:
docker rmi [image]
或者:
docker image rm [image]
支持的子命令如下:
-f, -force: 强制删除镜像,即便有容器引用该镜像;-no-prune: 不要删除未带标签的父镜像;2、通过 ID 删除镜像
除了通过标签名称来删除镜像,我们还可以通过制定镜像 ID, 来删除镜像,如:
docker rmi ID
一旦制定了通过 ID 来删除镜像,它会先尝试删除所有指向该镜像的标签,然后在删除镜像本身。
3、删除镜像的限制
先删除引用这个镜像的容器;
再删除这个镜像;也就是,根据上图中提示的,引用该镜像的容器 ID, 执行删除命令:
docker rm ID
然后,再执行删除镜像的命令:
docker rmi ID
4、清理镜像
我们在使用 Docker 一段时间后,系统一般都会残存一些临时的、没有被使用的镜像文件,可以通过以下命令进行清理:
docker image prune
它支持的子命令有:
-a, --all: 删除所有没有用的镜像,而不仅仅是临时文件;-f, --force:强制删除镜像文件,无需弹出提示确认;PS:docker 批量删除无用的容器或镜像
docker rm `docker ps -a | grep Exited | awk ‘{print $1}’` 删除异常停止的docker容器
docker rmi -f `docker images | grep ‘<none>’ | awk ‘{print $3}’` 删除名称或标签为none的镜像
到此这篇关于清除或删除docker无用镜像的操作方法的文章就介绍到这了,更多相关docker清理删除无用镜像内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!
-
docker 一键安装脚本
Docker 官方为了简化安装流程,提供了一套安装脚本,Ubuntu 和 Debian 系统可 以使用这套脚本安装:
curl -sSL https://get.docker.com/ | shDaoCloud 的安装脚本(推荐)
curl -sSL https://get.daocloud.io/docker | sh阿里云的安装脚本
curl -sSL http://acs-public-mirror.oss-cn-hangzhou.aliyuncs.com/docker-engine/internet | sh -推荐使用
bash <(curl -sSL https://gitee.com/SuperManito/LinuxMirrors/raw/main/DockerInstallation.sh)

-
docker-compose的网络networks的使用技巧
1. 介绍
1.1 介绍
前面福哥通过一篇《docker-compose学习笔记》带着大家把docker-compose的基础知识简单的学习了一番,之所以我们使用docker-compose而不是自己用docker去搞是因为docker-compose给我们提供了很多便利的功能,这些功能可以让我们更好的理解使用Docker部署服务器环境时候的一些对象的概念和特点。
docker-compose的service概念非常好,可以让我们把一个一个的容器抽象成一个一个的服务,每个服务之间存在了一定的关系,我们可以通过service的名称组织服务之间的关系而不用去关心服务背后的容器。
有些时候我们希望一些服务只能被一组特定的服务访问,这个时候使用只依靠默认的网络就行不通了,那么我们就需要根据自己的情况搭建我们的服务组的网络架构,就会用到docker-compose的networks功能了。
2. 类型
2.1 default
默认情况下docker-compose会建立一个默认的网络,名称为docker-compose.yml所在目录名称小写形式加上“_default”,我们的TFLinux环境就是“tflinux_default”。
这个默认网络会对所有services下面的服务生效,所以services下面的各个服务之间才能够通过service名称互相访问。
如果要自定义默认网络可以针对“default”网络进行设置,这样就会影响导默认网络了。
networks: default: driver: bridge2.2 自定义
除了默认网络之外,我们也可以建立自定义的网络,这个网络名称就比较随意了。
networks: persist: driver: bridge2.3 已存在网络
有时候我们想使用我们通过docker network create创建好的网络,而不是让docker-compose创建一个新的,这个时候就需要用到“external”关键字了。
networks: persist: external: name: bridge23. 案例
3.1 所有服务互通
要实现这个就非常容易了,因为有默认网络的存在,所以我们什么都不配置,在services下面的服务的容器里面都可以通过service名称访问其端口,前提是service需要通过ports发布它的端口出来。
services: # mysql mysql: build: dockerfile: Dockerfile context: ./image/mysql5.7 container_name: mysql image: tflinux-mysql5.7 networks: - default - persist volumes: - /tongfu.net/env/mysql-5.7.28/data/:/var/lib/mysql/ restart: always3.2 宿主机访问服务端口
通过docker-compose的默认网络就可以在宿主机上面访问服务的端口,但是docker-compose的默认网段是每次都会变化的。要想解决这个问题就只能通过在宿主机上面建立一个固定网段的网络,然后指定服务的网络为这个已经存在的网络,这样宿主机就可以通过这个网络的网关访问服务的端口了。
创建固定网段的网络bridge2。
docker network create --subnet=10.16.1.0/16 --gateway=10.16.1.1 --opt "com.docker.network.bridge.name"="bridge2" bridge2把bridge2网络配置导docker-compose里面。
networks: default: driver: bridge persist: external: name: bridge2给需要放开的服务增加default、persist两个网络。
注意:因为我们指定了persist特殊网络,所以default默认网络就自动失效了,如果需要使用default网络需要显性地指定下。
services: # mysql mysql: build: dockerfile: Dockerfile context: ./image/mysql5.7 container_name: mysql image: tflinux-mysql5.7 networks: - default - persist volumes: - /tongfu.net/env/mysql-5.7.28/data/:/var/lib/mysql/ restart: always3.3 服务访问宿主机端口
首先福哥不提倡这样使用,因为宿主机被访问是一种很危险的行为!
如果一定要访问宿主机的端口,可以通过服务网络的网关IP地址实现,前提是宿主机的端口绑定的是全部IP地址。
4. 总结
今天童鞋们跟着福哥对docker-compose的networks有了一个了解,使用networks搭建复杂的应用服务组,即安全,又方便。