百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术文章 > 正文

在群晖上用多种方式运行Docker容器

nanshan 2024-10-10 07:15 24 浏览 0 评论

在群晖上有多种方式运行Docker容器,直接使用Container Manager在注册表中下载镜像再启动容器是最直观的方法。群晖上还有别的方式来启动容器,对比直接在Container Manager上运行有优点也有缺点,下面一起来看看

Container Manager项目

首先来看看第一种方式,通过Container Manager中的项目来运行容器。它的原理是通过docker-compose配置文件下载镜像并运行容器

在运行容器之前,先创建好容器需要存放的文件夹,这里以memos容器为例。打开File Station,在docker共享文件夹下新建memos文件夹

打开Container Manager,在项目新增一个项目

路径中选择docker文件夹,来源选择创建docker-compose.yml文件,这样就可以在下面的输入框中输入docker-compose命令了

简单解释下这段docker-compose命令代表的意思

  • image: neosmemo/memos:stable:这行指定了 Docker 需要获取和运行的镜像的名称和标签。在这种情况下,Docker 会尝试从 Docker Hub 获取名为 "neosmemo/memos" 的镜像,并使用该镜像的 "stable" 标签
  • container_name: memos:这里将容器名指定为 "memos"
  • ./memos:/var/opt/memos:当前目录docker(由 . 表示)下的 "memos" 子目录被挂载到容器的 /var/opt/memos 路径上。这意味着在主机的 "./memos" 目录中的文件和目录将可在容器内的 "/var/opt/memos" 目录中直接访问
  • 5231:5230:主机的 5231 端口被映射到容器的 5230 端口,所有发送到主机的 5231 端口的流量都会被转发到容器的 5230 端口

点击下一步后,如果不需要设置网页门户,则不用勾选

最后点击完成,就能在弹出窗中看到执行的日志

启动成功后,就是绿色的标志

容器选项下,也能看到启动的memos容器

打开File Station的docker文件夹,有 一个新的yaml文件被创建,里面的内容其实就是前面那段docker-compose命令

使用Container Manager项目创建容器的好处和运行命令行操作docker-compose文件一样,非常简单,如果需要同时启动互相依赖的两个或多个容器十分方便,只需编辑好一个docker-compose文件就可以完成复杂项目的构建

任务计划

通过群晖的任务计划也可以执行docker命令。任务计划并不是用来启动容器的,它是一个定时任务,可以把它理解为简单版的青龙脚本

可以在控制中心找到任务计划选项

如果想把输出结果保存下来,可以在计划任务设置中选择一个文件夹位置进行保存

点击新增按钮来创建一个新的任务。如果要运行docker命令,则需要选择用户账号为root,否则没有执行权限

计划中的配置不用更改,因为不需要周期性去执行这个脚本

最后就是在任务设置中填入脚本,这里的脚本就是docker命令了,这和前面的docker-compose文件类似,都是拉取镜像启动容器。需要注意的是这里docker命令必须要把映射路径设置为memos文件夹的全路径/volume1/docker/memos

最后点击确定,就会开始运行当前脚本了。等到镜像拉取完毕,可以点击查看结果,没有错误就证明执行成功

同样可以在Container Manager中发现新的memos容器被启动

因为任务计划的脚本会周期性执行,所以执行完docker脚本后,建议把脚本删除或禁用。在任务计划中执行命令和在控制面板打开SSH执行命令类似,只是少了一步连接SSH的操作

相比较而言,这种方式运行容器就没有使用docker-compose配置文件那么直观。当然和直接在Container Manager手动下载镜像并设置映射相比较要简单很多。但是需要注意映射文件夹的路径一定是要全路径,不要运行一些未知的脚本,使用root用户代表最高权限,在运行了其他不安全的脚本时,可能会导致数据丢失或者被植入木马病毒等风险

SSH

群晖的控制面板可以打开SSH功能,这样可以通过终端直接连接到群晖进行命令行操作

连接后可以同样执行docker命令,或者用docker-compose文件来启动容器,具体的操作可以看下面这篇文章

群晖Container Manager到Docker容器技术

后记

不管是通过Container Manager项目运行容器还是在任务计划中手动执行计划,其实都是执行的Docker相关命令,只是群晖通过图形化界面进行了封装,让普通用户操作更方便、更容易理解

相关推荐

服务器数据恢复—Raid5数据灾难不用愁,Raid5数据恢复原理了解下

Raid5数据恢复算法原理:分布式奇偶校验的独立磁盘结构(被称之为raid5)的数据恢复有一个“奇偶校验”的概念。可以简单的理解为二进制运算中的“异或运算”,通常使用的标识是xor。运算规则:若二者值...

服务器数据恢复—多次异常断电导致服务器raid不可用的数据恢复

服务器数据恢复环境&故障:由于机房多次断电导致一台服务器中raid阵列信息丢失。该阵列中存放的是文档,上层安装的是Windowsserver操作系统,没有配置ups。因为服务器异常断电重启后,rai...

服务器数据恢复-V7000存储更换磁盘数据同步失败的数据恢复案例

服务器数据恢复环境:P740+AIX+Sybase+V7000存储,存储阵列柜上共12块SAS机械硬盘(其中一块为热备盘)。服务器故障:存储阵列柜中有磁盘出现故障,工作人员发现后更换磁盘,新更换的磁盘...

「服务器数据恢复」重装系统导致XFS文件系统分区丢失的数据恢复

服务器数据恢复环境:DellPowerVault系列磁盘柜;用RAID卡创建的一组RAID5;分配一个LUN。服务器故障:在Linux系统层面对LUN进行分区,划分sdc1和sdc2两个分区。将sd...

服务器数据恢复-ESXi虚拟机被误删的数据恢复案例

服务器数据恢复环境:一台服务器安装的ESXi虚拟化系统,该虚拟化系统连接了多个LUN,其中一个LUN上运行了数台虚拟机,虚拟机安装WindowsServer操作系统。服务器故障&分析:管理员因误操作...

「服务器数据恢复」Raid5阵列两块硬盘亮黄灯掉线的数据恢复案例

服务器数据恢复环境:HPStorageWorks某型号存储;虚拟化平台为vmwareexsi;10块磁盘组成raid5(有1块热备盘)。服务器故障:raid5阵列中两块硬盘指示灯变黄掉线,无法读取...

服务器数据恢复—基于oracle数据库的SAP数据恢复案例

服务器存储数据恢复环境:某品牌服务器存储中有一组由6块SAS硬盘组建的RAID5阵列,其中有1块硬盘作为热备盘使用。上层划分若干lun,存放Oracle数据库数据。服务器存储故障&分析:该RAID5阵...

「服务器虚拟化数据恢复」Xen Server环境下数据库数据恢复案例

服务器虚拟化数据恢复环境:Dell某型号服务器;数块STAT硬盘通过raid卡组建的RAID10;XenServer服务器虚拟化系统;故障虚拟机操作系统:WindowsServer,部署Web服务...

服务器数据恢复—RAID故障导致oracle无法启动的数据恢复案例

服务器数据恢复环境:某品牌服务器中有一组由4块SAS磁盘做的RAID5磁盘阵列。该服务器操作系统为windowsserver,运行了一个单节点Oracle,数据存储为文件系统,无归档。该oracle...

服务器数据恢复—服务器磁盘阵列常见故障表现&解决方案

RAID(磁盘阵列)是一种将多块物理硬盘整合成一个虚拟存储的技术,raid模块相当于一个存储管理的中间层,上层接收并执行操作系统及文件系统的数据读写指令,下层管理数据在各个物理硬盘上的存储及读写。相对...

「服务器数据恢复」IBM某型号服务器RAID5磁盘阵列数据恢复案例

服务器数据恢复环境:IBM某型号服务器;5块SAS硬盘组成RAID5磁盘阵列;存储划分为1个LUN和3个分区:第一个分区存放windowsserver系统,第二个分区存放SQLServer数据库,...

服务器数据恢复—Zfs文件系统下误删除文件如何恢复数据?

服务器故障:一台zfs文件系统服务器,管理员误操作删除服务器上的数据。服务器数据恢复过程:1、将故障服务器所有磁盘编号后取出,硬件工程师检测所有硬盘后没有发现有磁盘存在硬件故障。以只读方式将全部磁盘做...

服务器数据恢复—Linux+raid5服务器数据恢复案例

服务器数据恢复环境:某品牌linux操作系统服务器,服务器中有4块SAS接口硬盘组建一组raid5阵列。服务器中存放的数据有数据库、办公文档、代码文件等。服务器故障&检测:服务器在运行过程中突然瘫痪,...

服务器数据恢复—Sql Server数据库数据恢复案例

服务器数据恢复环境:一台安装windowsserver操作系统的服务器。一组由8块硬盘组建的RAID5,划分LUN供这台服务器使用。在windows服务器内装有SqlServer数据库。存储空间LU...

服务器数据恢复—阿里云ECS网站服务器数据恢复案例

云服务器数据恢复环境:阿里云ECS网站服务器,linux操作系统+mysql数据库。云服务器故障:在执行数据库版本更新测试时,在生产库误执行了本来应该在测试库执行的sql脚本,导致生产库部分表被tru...

取消回复欢迎 发表评论: