标签

 docker 

相关的文章:

Power's Wiki -

使用 Watchtower 自动更新容器(群晖 Docker)

使用 Watchtower 自动更新群晖 Docker 上的容器。 在群晖 Docker 应用中下载镜像 打开群晖 Docker 套件,下载 containrrr/watchtower 镜像即可。 在任务计划中配置 Watchtower 打开群晖的 控制面板 - 任务计划 - 新增 - 计划的任务 - 用户定义的脚本,随后按以下图片填写配置: 其中的脚本: shell docker run --rm --name watchtower -v /var/run/docker.sock:/var/run/docker.sock containrrr/watchtower --cleanup --run-once calibre-web freshrss code-server 注意,脚本的最后 calibre-web freshrss code-server 是需要更新的容器名,请替换为你需要更新的;或者留空表示更新全部容器。 保存,运行脚本即可实现 Docker 容器批量定时更新。 参考与致谢 如何优雅地使用一条命令更新群晖 docker 容器 - Watchtower 教程 原文地址:https://wiki-power.com/ 本篇文章受 CC BY-NC-SA 4.0 协议保护,转载请注明出处。

AI生成摘要 本文介绍了如何使用Watchtower自动更新群晖Docker上的容器。首先在群晖Docker应用中下载containrrr/watchtower镜像,然后在任务计划中配置Watchtower的脚本,即可实现Docker容器的定时更新。

相关推荐 去reddit讨论

Power's Wiki -

Docker 基础知识

众所周知,软件开发中最麻烦的事情之一,就是环境的配置。运行环境的差异,可能导致意想不到的结果,而使用 Docker 可以避免出现这样的问题。 Docker 与容器化技术 Docker 把软件本身和它所需的运行环境打包起来,使用的时候就不需要再去配置环境了(因为环境都在包里),这样就能确保你的环境和开发者的一模一样,避免因运行环境差异而造成问题。 Docker 使用的是 容器化技术。当我们谈论容器化技术时,可以将其类比 集装箱。它是一种 标准化 的大型容器,可以在各种运输工具(如船舶、火车、卡车)之间进行简单的装载和卸载,而无需考虑其内部的具体内容组成。类似地,容器化技术将应用程序及其所有依赖项打包在一个独立的、可移植的环境中,称为容器。 容器化技术的主要目标是实现应用程序的快速部署、可扩展性和环境隔离。通过将应用程序和相关依赖项打包在一个容器中,我们可以确保在不同的计算机或服务器上以一致的方式运行应用程序,而无需担心环境差异或依赖冲突的问题。这使得开发人员可以更快速地交付应用程序,同时也简化了应用程序的部署和管理过程。 容器化技术的一大优势是它提供了轻量级的虚拟化解决方案。与传统的虚拟机相比,容器化技术更加轻巧且资源消耗更少。每个容器都运行在宿主操作系统的相同内核上,共享操作系统的资源,因此容器启动更快、占用更少的内存,也可以在同一台机器上同时运行多个容器。 Docker 是目前比较流行的容器化解决方案。它主要包含三要素,分别是 Image(镜像)、Container(容器)和 Repository(仓库)。 Image(镜像):镜像是一个可执行文件,包含了应用程序及其依赖的所有文件系统(代码、runtime、系统工具、库文件)和配置。我们可以将镜像看作是容器的模板,通过它可以创建多个不同的容器实例。 Container(容器):容器是由镜像创建的运行实例。每个容器都是相互隔离的、独立运行的环境,可以在其中运行应用程序。 Repository(仓库):仓库是用来存储和分享镜像。我们可以将自己创建的镜像推送到仓库中,也可以从仓库中拉取他人创建的镜像。 容器与镜像的关系,就像面向对象编程中的对象与类。 Docker 的安装与配置 在安装 Docker 之前,可以先用以下的命令卸载旧版本包,避免冲突: shell for pkg in docker.io docker-doc docker-compose podman-docker containerd runc; do sudo apt-get remove $pkg; done 对于主流的 Linux 系统,可以使用官方脚本的方法下载安装 Docker Engine:(需要使用 root 用户权限) shell curl -fsSL https://get.docker.com -o get-docker.sh sudo sh ./get-docker.sh --dry-run 因为 Docker 运行在并依赖于 Linux 环境,所以它几乎没有效率损耗。但是,如果在其他系统上部署 Docker,就必须先安装一个虚拟 Linux 环境。 Windows 下 Docker 的安装方法,请参考官方文档 Install Docker Desktop on Windows。 MacOS 下的安装方法,请参考官方文档 Install Docker Desktop on Mac。 按照流程安装后,我们可以使用以下的命令,验证 Docker 是否安装成功: shell docker version 在 Linux 下安装 Docker Engine 后,如果想要以非 root 用户使用,可以使用以下的命令配置权限: shell sudo groupadd docker sudo usermod -aG docker $USER 完成配置后,可能需要注销重新登录,以更新权限。 如果安装出现问题,请参考官方文档 Troubleshoot Docker Engine installation。 实例:Hello World 下面将用官方 hello-world 例子来演示 Docker。打开终端或命令提示符,并输入以下命令运行 hello-world 容器: shell docker run hello-world 这将从 Docker 镜像仓库中下载 hello-world 镜像,创建并运行容器。当看见 hello world 的输出时,说明运行成功。 一些常用的 Docker CLI 命令 Docker 提供了一组强大而丰富的命令,用于管理和操作容器、镜像、网络等资源。下面是一些常用的 Docker CLI 命令: docker run:基于指定的镜像创建并运行一个新容器。例如,docker run -d -p 8080:80 nginx 会在后台运行一个 NGINX 容器,将主机的 8080 端口映射到容器的 80 端口。 docker ps:列出正在运行的容器。默认情况下,它会显示正在运行的容器的 ID、镜像、命令等信息。使用docker ps -a命令可以显示所有的容器,包括已停止的容器。 docker stop:停止一个或多个运行中的容器。可以指定容器的 ID 或名称。例如,docker stop mycontainer 会停止名为 mycontainer 的容器。 docker start:启动一个或多个已停止的容器。可使用容器的 ID 或名称来指定容器。 docker stop:停止一个或多个运行中的容器。 docker restart:重启一个或多个容器。 docker rm:删除一个或多个容器。如果要删除运行中的容器,可以使用 docker rm -f 命令。 docker images:列出本地镜像。它会显示本地计算机上已经下载和创建的 Docker 镜像的列表,包括镜像 ID、大小和创建时间等信息。 docker rmi:删除一个或多个镜像。可以使用镜像的 ID 或标签来指定镜像。例如,docker rmi myimage:1.0 会删除名为 myimage 且标签为 1.0 的镜像。 docker build:基于 Dockerfile 构建一个自定义镜像。例如,docker build -t myimage:1.0 .会根据当前目录下的 Dockerfile 构建一个名为 myimage 且标签为 1.0 的镜像。 docker exec:在运行中的容器中执行命令。可以指定容器的 ID 或名称,以及要执行的命令。例如,docker exec -it mycontainer bash会在名为 mycontainer 的容器中启动一个新的交互式终端。 这些是一些常用的 Docker 命令,用于管理和操作容器和镜像。还有更多的命令可以探索,可以通过docker --help命令查看完整的命令列表和其它可用选项,也可以参考官方文档 Use the Docker command line。 如需了解更多 Docker 相关的知识,请移步后续的文章: Docker Compose - 镜像编排工具 将应用封装为 Docker 容器 如果你想直接上手实践,也可参考以下系列的文章: 搭建属于自己的 HomeLab Homelab - 轻量服务器管理面板 CasaOS Homelab - 反代证书管理面板 Nginx Proxy Manager Homelab - 内网穿透工具 frp Homelab - 免费的内网穿透替代方案 Cloudflared Homelab - 在线代码编辑器 code-server Homelab - 网站状态监控工具 Uptime Kuma Homelab - 高质量图片压缩工具 TinyPNG-docker Homelab - 极简个人书签导航站 Flare Homelab - 容器应用管理平台 Portainer Homelab - 跨设备同步工具 Syncthing Homelab - 碎片笔记工具 memos Homelab - 功能强大的 wiki 系统 Wiki.js Homelab - 自托管密码管理器 Vaultwarden Homelab - 支持公有云的图床系统 Cloudreve Homelab - 自托管 RSS 聚合器 FreshRSS Homelab - 支持多种协议的堡垒机 Next Terminal Homelab - 多功能 PDF 工具箱 Stirling-PDF Homelab - 网站 favicon 抓取工具 iconserver Homelab - 自动更新 Docker 容器的工具 Watchtower Homelab - 支持多存储的文件列表程序 Alist Homelab - 功能丰富的看板软件 WeKan Homelab - 播客与有声书服务器 Audiobookshelf Homelab - 云端音乐服务器 Navidrome Homelab - 影视媒体服务器 Jellyfin Homelab - 电子书管理服务器 calibre-web Homelab - 智能家居服务器 Home Assistant Homelab - 卡片辅助记忆软件 Anki 参考与致谢 Docker - 从入门到实践 Docker 教程 Docker 入门教程 CentOS 安装 Docker 原文地址:https://wiki-power.com/ 本篇文章受 CC BY-NC-SA 4.0 协议保护,转载请注明出处。

AI生成摘要 Docker是一种容器化技术,可以将应用程序及其依赖项打包在一个独立的、可移植的环境中。它提供了轻量级的虚拟化解决方案,比传统的虚拟机更轻巧且资源消耗更少。Docker主要包含镜像、容器和仓库三个要素。镜像是容器的模板,容器是由镜像创建的运行实例,仓库用于存储和分享镜像。安装Docker需要在Linux环境下进行,可以使用一些常用的Docker CLI命令来管理和操作容器和镜像。

相关推荐 去reddit讨论

Power's Wiki -

从零搭建视觉开发环境(Docker-Linux)

参考与致谢 在 Docker 的 Linux 容器搭建前端开发环境 原文地址:https://wiki-power.com/ 本篇文章受 CC BY-NC-SA 4.0 协议保护,转载请注明出处。 结语 为什么选择在 Docker 上跑 Linux? 相比双系统、远程服务器、虚拟机等食用 Linux 的方法,Docker 上用 Linux 不仅方便,而且玩坏了重装步骤简单。再者,我们可以封装统一的镜像 软件安装 在 Windows 系统下,直接点击 此链接 下载 Docker Desktop 软件(其他系统的下载安装方法请见 Install Docker Engine)。 待其自动安装完成后, \

AI生成摘要 本文介绍了在Docker上搭建Linux视觉开发环境的方法。相比其他方法,使用Docker运行Linux更加方便,并且重装步骤简单。在Windows系统下,可以通过下载Docker Desktop软件来安装。

相关推荐 去reddit讨论

Power's Wiki -

使用 acme.sh 自动申请域名证书(群晖 Docker)

本文介绍如何使用 Docker 镜像 acme.sh,实现名证书自动申请和续签功能。 acme.sh 可以从 letsencrypt 生成免费的证书,支持 Docker 部署,支持 http 和 DNS 两种域名验证方式,其中包括手动,自动 DNS 及 DNS alias 模式方便各种环境和需求。可同时申请合并多张单域名,泛域名证书,并自动续签证书和部署到项目。 准备 DNS API 本文以腾讯云为例申请 DNS API,其他解析平台请参考官方文档 dnsapi。 首先,打开 DNSPOD,点击右上角头像 - 密钥管理 接着,创建一个新的密钥,并拷贝 ID 与 Token。 在群晖 Docker 上部署 本教程介绍的是 Docker 的 daemon 守护模式,一直挂着容器,实现证书到期自动续期的功能。 创建配置文件夹 我们先创建 /docker/acme.sh 文件夹,再手动创建 account.conf 文件: 接着,我们编辑这个文件,手动添加这几行: conf export DP_Id="刚刚申请的 ID" export DP_Key="刚刚申请的 TOKEN" AUTO_UPGRADE='1' 随后保存并关闭文件。 下载镜像并配置容器 打开群晖 Docker 套件,下载 neilpang/acme.sh 镜像,双击启动并进入 高级设置 在 卷 页面配置挂载的文件夹,点击 添加文件夹,选择本地的 docker/acme.sh 路径,装载路径填 /acme.sh(默认不可变): 在 网络 页面,勾选 使用与 Docker Host 相同的网络。 接着,切换到 环境 页面,在 命令 框里填入 daemon 命令: 随后创建并运行容器。双击已运行的容器,切换到 终端机 页面,点击 通过命令启动,输入 sh 后点确定。 输入以下命令实现自动更新: shell acme.sh --upgrade --auto-upgrade 然后输入以下命令申请证书: shell acme.sh --issue --dns dns_dp -d wiki-power.com -d *.wiki-power.com 其中,dns_dp 代表腾讯云 DNSPod,如果是阿里云请填写 dns_ali,CLoudflare 填写 dns_cf,其他请参考官方手册 dnsapi。另外,其中 *.wiki-power.com 代表申请的是泛域名证书。如果需要同时申请多域名,可以按照以下的方式: shell acme.sh --issue --dns dns_dp -d aaa.com -d *.aaa.com -d bbb.com -d *.bbb.com -d ccc.com -d *.ccc.com 在 daemon 守护模式下,acme.sh 会根据申请记录,每 60 天自动更新证书。 生成证书 如果一切顺利,你可以在 docker/acme.sh/域名命名的文件夹 内发现 域名.cer 和 域名.key,这就是证书和密钥文件,可以拷贝至需要用到的地方。 参考与致谢 群晖 NAS 高级服务 - docker 部署 acme.sh 自动申请域名证书 原文地址:https://wiki-power.com/ 本篇文章受 CC BY-NC-SA 4.0 协议保护,转载请注明出处。

AI生成摘要 本文介绍了如何使用Docker镜像acme.sh自动申请和续签域名证书。acme.sh可以从letsencrypt生成免费证书,支持http和DNS两种验证方式。首先需要准备DNS API,然后在群晖Docker上部署acme.sh。创建配置文件夹并编辑account.conf文件,下载镜像并配置容器。最后通过命令实现自动更新和申请证书。在daemon守护模式下,acme.sh会每60天自动更新证书。如果一切顺利,可以在指定文件夹内找到证书和密钥文件。

相关推荐 去reddit讨论

Power's Wiki -

Homelab - 高质量图片压缩工具 TinyPNG-docker

TinyPNG-docker 是一个调用 TinyPNG API 进行图片高质量压缩的工具,可以自动压缩指定路径下的 WEBP、JPEG 和 PNG 图片,然后输出到你想要的路径下。它能有效减少网站的带宽占用、流量和加载时间。顺带说一句,这是我借助 ChatGPT 开发的一个 Docker 应用。 部署(Docker Compose) 首先创建 compose.yaml ,并将以下的 ${DIR} 替换为本地的目录(例如 /DATA/AppData);将 ${API} 替换为自己申请的 TinyPNG 密钥: yaml title="compose.yaml" version: "3" services: tinypng-docker: image: linyuxuanlin/tinypng-docker environment: - TINYPNG_API_KEY=${API} - INPUT_DIR=/app/input - OUTPUT_DIR=/app/output volumes: - ${DIR}/tinypng-docker/input:/app/input - ${DIR}/tinypng-docker/output:/app/output 配置说明 使用这个 Docker 容器前,你需要先在 TinyPNG 官网上注册一个账户,并申请获取一个 API 密钥。 使用方法很简单,把需要压缩的图片贴进 ${DIR}/tinypng/input 文件夹中,就能在 ${DIR}/tinypng/output 文件夹找到压缩后的图片了。 如果容器无法正常使用,可以用以下的方法排除: 确保 compose.yaml 文件中指定的 input 和 output 文件夹路径正确。 检查你的 TinyPNG 账户,是否已达到 API 密钥允许的最大压缩次数。 检查 input 文件夹是否包含正确格式的图像文件(WebP, PNG, JPEG)。注意,此容器只会检测并压缩 created 事件,因此如果文件已经存在,则需要手动将其移到 input 目录当中。 检查压缩的图片是否在失真度上高于 API 的压缩设置,可能导致 API 解码失败(例如压缩前的图片已经压缩过)。 尝试手动使用 tinify 官网提供的 API 压缩工具,上传压缩后的图片以进一步确定问题的所在,同时你可以在控制台输出调试信息定位问题。 Docker 镜像开发流程 准备工作 如还未注册 Docker Hub 账户,则需要先在 Docker Hub 上创建一个账户。 登录 Docker Hub: shell docker login 根据提示输入用户名和密码,登录到 Docker Hub。 创建容器 创建 Dockerfile 文件: ```Dockerfile title="Dockerfile" FROM python:3.8-slim-buster RUN pip install tinify watchdog WORKDIR /app COPY . /app ENV TINYPNG_API_KEY= ENV INPUT_DIR=/app/input ENV OUTPUT_DIR=/app/output CMD ["python", "main.py"] ``` 在相同路径下创建 main.py: ```py title="main.py" import tinify import os import time import sys from watchdog.observers import Observer from watchdog.events import FileSystemEventHandler class MyHandler(FileSystemEventHandler): def on_created(self, event): if event.is_directory: return None elif event.event_type == 'created': print("Received created event - %s." % event.src_path) source_path = event.src_path output_path = os.path.join(os.environ['OUTPUT_DIR'], os.path.basename(source_path)) compress_image(source_path, output_path) def compress_image(source_path, output_path): tinify.key = os.environ['TINYPNG_API_KEY'] source = tinify.from_file(source_path) source.to_file(output_path) print(f"{source_path} compressed and saved to {output_path}") if name == "main": print("Watching for new images...") event_handler = MyHandler() observer = Observer() observer.schedule(event_handler, path=os.environ['INPUT_DIR'], recursive=False) observer.start() try: while True: time.sleep(1) except KeyboardInterrupt: observer.stop() observer.join() ``` 这里首先导入必需的 Python 库:tinify,os,time,sys,watchdog。随后定义了一个名为 MyHandler 的类,继承自 watchdog.events.FileSystemEventHandler。这个类包含一个 on_created 方法,当监测到指定文件夹下有新文件被创建时会被调用。on_created 函数获取源图像的路径,并将其压缩到指定的输出路径。最后开始监测输入文件夹,一旦检测到指定文件夹下有新文件被创建,就会自动执行压缩操作,并将压缩后的图像输出到指定的输出文件夹。 编译容器 在 Dockerfile 相同路径下执行以下命令编译容器: shell docker build -t tinypng-docker . 其中,tingpng-docker 为要构建的镜像名称,. 为 Dockerfile 文件所在的路径。 为镜像打标签 使用以下命令为镜像打标签: shell docker tag <image-name> <dockerhub-username>/<repository-name>:<tag> 例如: shell docker tag tinypng-docker linyuxuanlin/tinypng-docker:latest 推送镜像到 Docker Hub 使用以下命令将镜像上传到 Docker Hub: ```shell docker push /: ``` 例如: shell docker push linyuxuanlin/tinypng-docker:latest 拉取镜像 上传完成后,其他人便可以通过以下命令拉取镜像: shell docker pull linyuxuanlin/tinypng-docker:latest 参考与致谢 文档 GitHub repo Docker Hub 原文地址:https://wiki-power.com/ 本篇文章受 CC BY-NC-SA 4.0 协议保护,转载请注明出处。

AI生成摘要 TinyPNG-docker是一个调用TinyPNG API进行图片高质量压缩的工具。它可以自动压缩指定路径下的WEBP、JPEG和PNG图片,并输出到指定路径下。使用前需要在TinyPNG官网注册账户并申请API密钥。部署时需要创建compose.yaml文件,并将其中的${DIR}替换为本地目录,将${API}替换为申请的密钥。使用方法简单,将需要压缩的图片放入指定文件夹中,压缩后的图片会出现在输出文件夹中。如果容器无法正常使用,可以检查文件夹路径、API密钥、图像文件格式和压缩设置等。编译容器时需要创建Dockerfile和main.py文件,并导入必需的Python库。编译完成后可以为镜像打标签并上传到Docker Hub,其他人可以通过拉取镜像使用。

相关推荐 去reddit讨论

Power's Wiki -

CentOS 安装 Docker

卸载可能存在的旧版本 shell sudo yum remove docker \ docker-client \ docker-client-latest \ docker-common \ docker-latest \ docker-latest-logrotate \ docker-logrotate \ docker-engine 用仓库的方法安装 设置仓库 shell sudo yum install -y yum-utils shell sudo yum-config-manager \ --add-repo \ https://download.docker.com/linux/centos/docker-ce.repo 安装 Docker Engine shell sudo yum install docker-ce docker-ce-cli containerd.io 参考与致谢 Install Docker Engine on CentOS 原文地址:https://wiki-power.com/ 本篇文章受 CC BY-NC-SA 4.0 协议保护,转载请注明出处。

AI生成摘要 本文介绍了在CentOS上安装Docker的步骤,包括卸载旧版本、设置仓库和安装Docker Engine。

相关推荐 去reddit讨论

Power's Wiki -

使用 Calibre 搭建在线书库(群晖 Docker)

如何在群晖 NAS 用 calibre-web(Docker)搭建一个在线书库。 相比于传统用文件夹的方式,以开源的 Calibre 为代表的书库管理方式,能提供更丰富的功能诸如在线阅读、下载、格式转换、推送到邮箱、去除重复书籍等。calibre-web 是一个基于 Calibre 的 Docker 镜像,可以让我们很方便地将书库部署在像群晖这样的服务器上。 建立初始文件夹 首先,建立书库资源文件夹,这里我直接在磁盘根目录建立了一个名为 book 的共享文件夹: 相应地,在 docker 文件夹内创建一个名为 calibre-web 文件夹,专门用于存放 Docker 镜像的配置文件。 创建容器 打开群晖的 Docker 套件,在注册表中搜索 johngong/calibre-web,双击下载后,初始化容器,点进高级设置。 在 卷 页面添加映射文件夹,装载路径分别是 /library 和 /config: 在 端口设置 页面添加端口映射,主要将容器内部的 8083 端口映射出去,这里我选择 5004。 随后,创建并启动容器。 运行测试 打开群晖内网 IP:5004 打开管理界面,默认的账号是 admin,密码是 admin123 需要注意的是,默认是没有书籍上传功能的,需要依次点击右上角 管理权限 - 编辑基本配置 — 启用上传,才能启用书籍上传功能。 启用 HTTPS 使用群晖系统自带的反向代理(推荐) 具体教程可以跳转文章 用群晖自带反向代理实现 HTTPS 访问 直接添加证书方法 将申请到的证书和密钥文件复制一份到 docker/calibre-web/ 目录下。 随后在 calibre-web 内依次点击 管理权限 - 编辑基本配置 - 服务器配置,配置 SSL 证书及密钥文件的路径(例如我是 /config/wiki-power.com.cer 和 /config/wiki-power.com.key),随后点击保存。 这样就可以开启 HTTPS 访问了。 参考与致谢 群晖 Docker 安装 calibre-web 图书管理系统 原文地址:https://wiki-power.com/ 本篇文章受 CC BY-NC-SA 4.0 协议保护,转载请注明出处。

AI生成摘要 本文介绍了如何使用Calibre和Calibre-web(Docker)在群晖NAS上搭建一个在线书库。通过Calibre等开源书库管理工具,可以提供丰富的功能,如在线阅读、下载、格式转换等。首先需要创建书库资源文件夹和Docker配置文件夹,然后在群晖的Docker套件中下载并初始化容器。通过群晖内网IP访问管理界面,并启用上传功能。最后,可以使用群晖自带的反向代理或直接添加证书的方法启用HTTPS访问。

相关推荐 去reddit讨论

Power's Wiki -

使用 Bitwarden 搭建密码管理器(群晖 Docker)

注:由于 bitwarden_rs 镜像更名,且 Bitwarden 官方浏览器拓展与旧版本不兼容无法登录,请将下文出现的 bitwardenrs/server 替换为 vaultwardenrs/server,并确保版本不低于 1.27.0! 本文介绍如何在自己的群晖上使用 Docker 对全平台密码管理服务器 Bitwarden 进行私有部署。 目前的密码管理器方案有 1Password,Lastpass,KeePass,Bitwarden 等,这几种方案各有优劣。在这里我的需求是可多端同步使用,开源可自部署,且有自动填充的功能,同时兼顾界面美观,所以我选择了在自己的群晖上部署 Bitwarden 服务。 在群晖 Docker 上部署 建立存放数据的文件夹 我们在 docker 目录下建立存放 Bitwarden 数据的文件夹(比如 docker/bitwarden)。 下载镜像并配置容器 打开群晖 Docker 套件,下载 bitwardenrs/server 镜像,双击启动,勾选 启用自动重新启动,然后进入 高级设置。 在 卷 页面配置挂载的文件夹,点击 添加文件夹,选择本地的 docker/bitwarden 路径,装载路径填 /data(默认不可变): 在 端口设置 页面,手动设置容器端口 80 所对应的本地端口(比如我设置为 8003): 随后完成配置,启动容器。输入群晖本地 IP:8003,我们就能看到 Bitwarden 的登陆页面了。但是当我们创建账户后登录时,会看到这样一条提示: 这是因为,Docker 容器本身没有提供 https 端口配置,而 Bitwarden 又只能够通过 https 来进行登录(SSL 加密防止中间人攻击)。所以,在这里我们必须使用群晖自带的反向代理服务,通过 https 来访问内部 http 端口了。具体教程可以跳转文章 用群晖自带反向代理实现 HTTPS 访问 多设备使用 可以在 Bitwarden 官方的 下载页面,下载各版本的客户端 桌面端 推荐直接使用浏览器扩展 Bitwarden - 免费密码管理器 在登录的时候,先点击左上角的小齿轮,进入设置: 在 自托管环境 中的 服务器 URL 填入群晖 NAS 的 IP:外部端口,即可正常登录。 如果需要,也可以下载桌面客户端使用。 移动端 直接在 AppStore 或各应用商城下载 Bitwarden App,在登录页面也需要配置自托管环境,步骤与桌面端相同。 备份密码数据库 备份 Bitwarden 数据库的方法有两种: 在网页端或客户端内选择 导出密码库 直接备份 data 文件夹 参考与致谢 群晖 NAS 高级服务 - docker 部署 bitwarden 全平台密码管理器 使用群晖搭建第三方 Bitwarden 密码服务器 原文地址:https://wiki-power.com/ 本篇文章受 CC BY-NC-SA 4.0 协议保护,转载请注明出处。

AI生成摘要 本文介绍如何在群晖上使用Docker搭建Bitwarden密码管理服务器。首先在docker目录下建立存放数据的文件夹,然后下载bitwardenrs/server镜像并配置容器。启动容器后,使用群晖自带的反向代理服务实现https访问。可以在Bitwarden官方下载各版本的客户端,桌面端可以使用浏览器扩展或下载桌面客户端,移动端可以下载Bitwarden App。备份密码数据库有两种方法。

相关推荐 去reddit讨论

Power's Wiki -

将应用封装为 Docker 容器

将应用封装为 Docker 容器,可以更加方便地部署管理。下面是一个示例,演示了如何将一个 Python 应用封装为 Docker 容器,并使用 Docker Compose 的方式执行。 基本模板 将应用 Docker 容器化,首先需要确保 Docker 已经安装。接着,需要在你的 Python 应用程序根目录下,创建这两个文件:Dockerfile 和 compose.yaml,它们大致会包含以下内容: ```Dockerfile title="Dockerfile" 设置基础镜像为 Python 官方镜像,版本可自定义 FROM python:3.9 设置工作目录为 /app WORKDIR /app 复制 Python 应用程序的依赖文件 COPY requirements.txt . 安装应用程序依赖 RUN pip install --no-cache-dir -r requirements.txt 复制应用程序文件,从当前目录拷贝进容器内的目录 COPY . . 设置默认执行命令 CMD ["python", "app.py"] ``` yaml title="compose.yaml" version: "3" services: app: build: . 在这个 compose.yaml 文件中,我们定义了一个服务名为 app 的服务。通过 build: . 指令,它将使用当前目录下的 Dockerfile 文件来构建镜像。在 compose.yaml 的目录下执行 docker compose up,即可构建并启动这个应用。 实例:将一个简单的 Python 应用封装为 Docker 容器 以下是一个简单的 Hello World 应用示例, 这是一个示例的 Python 应用,用于在网页上打印 Hello World: python title="app.py" from flask import Flask app = Flask(__name__) @app.route("/") def hello(): return "Hello World!" if __name__ == "__main__": app.run(host="0.0.0.0", port=int("8000"), debug=True) 如果我们按照普通的流程部署 Python 应用,而不采用容器化的方法,则需要先安装依赖,对于某些需要编译安装包,在 Windows 环境下还可能出错,可能会缺失必要的头文件。如果我们将其封装为 Docker,就可以忽略环境的差;即使 Host 主机不联网,也只需拷贝镜像即可完成部署。以下的步骤展示将其 Docker 容器化,并用 Docker Compose 部署。 首先,创建一个名为 Dockerfile 的文件,在其中填写以下内容: ```Dockerfile title="Dockerfile" 设置基础镜像为Python官方镜像 FROM python:3.9 复制应用程序文件 COPY . /app 设置工作目录 WORKDIR /app 安装依赖 RUN pip install flask 暴露 8000 端口用于访问 EXPOSE 8000 启动应用程序 CMD python ./app.py ``` 然后,在同一目录下创建一个名为compose.yaml的文件,将以下内容复制到其中: yaml title="compose.yaml" version: "3" services: helloworld-flask: build: . ports: - "8099:8000" # 端口 8099 可自定义 现在,你可以打开终端,进入包含 Dockerfile 和 compose.yaml 文件的目录,并运行以下命令来启动应用程序: shell docker compose up Docker 将会构建镜像并启动容器。访问 http://localhost:8099 即可看到 Hello World 的字符。通过以上步骤,可以将一个简单的 Python 应用容器化,并使用 Docker Compose 进行部署。 参考与致谢 Containerize an application 3 分钟将 Python 应用容器化

AI生成摘要 本文介绍了如何将Python应用封装为Docker容器,并使用Docker Compose进行部署。首先需要创建Dockerfile和compose.yaml文件,然后通过docker compose up命令构建和启动应用。文章还提供了一个简单的Hello World应用示例,并说明了将应用容器化的好处。最后给出了具体的步骤和命令。

相关推荐 去reddit讨论

Power's Wiki -

Homelab - 自动更新 Docker 容器的工具 Watchtower

Watchtower 是一个自动化更新全部或选定 Docker 容器的工具。 部署(Docker Compose) 首先创建 compose.yaml 文件,并粘贴以下内容: yaml title="compose.yaml" version: "3" services: watchtower: container_name: ${STACK_NAME}_app image: containrrr/watchtower:${APP_VERSION} volumes: - /var/run/docker.sock:/var/run/docker.sock restart: always (可选)推荐在 compose.yaml 同级目录下创建 .env 文件,并自定义你的环境变量。如果不想使用环境变量的方式,也可以直接在 compose.yaml 内自定义你的参数(比如把 ${STACK_NAME} 替换为 watchtower)。 ```dotenv title=".env" STACK_NAME=watchtower watchtower APP_VERSION=latest ``` 最后,在 compose.yaml 同级目录下执行 docker compose up -d 命令即可启动编排的容器。 参考与致谢 官网 / 文档 GitHub repo Docker Hub 原文地址:https://wiki-power.com/ 本篇文章受 CC BY-NC-SA 4.0 协议保护,转载请注明出处。

AI生成摘要 Watchtower是一个自动更新Docker容器的工具。通过创建compose.yaml文件并设置相关参数,可以使用Watchtower自动更新选定的Docker容器。可以通过在compose.yaml同级目录下创建.env文件来自定义环境变量。最后,通过执行docker compose up -d命令启动编排的容器。

相关推荐 去reddit讨论