『Docker Compose』威联通Docker的正确打开方式

2022-12-28 16:05:18 60点赞 379收藏 25评论

很多时候,我们NAS用户在使用Docker的时候,基本都是先打开NAS上面的SSH,然后通过远程连接工具(比如说PuTTY,Xshell等)再来操作,但是对于很多刚上手的小白而言,Docker部署的一些专业术语和命令看着就头疼,特别是对于我们想要在NAS上部署自己需要的一个服务,比如说搭建家庭影音,我们需要使用Docker部署多个容器(管理下载的qB,管理海报墙的jellyfin,管理刮削的TMM),按照以往我们需要通过Docker命令一个一个的拉取,还要兼顾容器间的挂载路径和参数,麻烦不说,搞不好最后还失败了。

那么有没有一种更高效快捷的Docker部署方案呢?当然是有的,那就是『Docker Compose』。

Docker Compose应该是目前成品NAS中威联通独有的功能,它是一个用来定义和运行多个复杂应用的Docker工具。简单来说,我们通过Docker Compose 的一个配置文件,就能轻松的部署与管理多个Docker容器,在配置文件中,所有的容器通过services来定义,然后使用docker-compose脚本来启动,停止和重启应用,和应用中的服务以及所有依赖服务的容器,非常适合组合使用多个容器进行开发的场景。

Docker Compose管理着如下三个内容:

  • 工程:docker-compose运行的目录即为一个工程,在微服务场景下,我们往往都是使用git submodule的方式组建工程的,因此父项目就可以成为一个docker compose的工程;

  • 服务:对应子项目,一个工程可以包含多个子项目;

  • 容器:对应服务的实例,一个服务可以有多个实例;

其实说了这么多,对于小白而言肯定还是一头雾水,啥也不懂对吧?不过没关系,我们只需要知道,通过Docker Compose,我们只需要一个配置文件,就能让它快速的部署多个容器,比如说前面说的搭建家庭影音库,我们只需要一个配置文件,就能一次搞定qB,jellyfin,TMM三个容器的部署,并且还能让它们之间相互关联,不光大大提高Docker的部署效率,同时也提升了搭建家庭影音库的成功率。

也就是说,通过Docker Compose部署Docker容器,我们只需要做两件事:

1,编辑对应的配置文件

2,创建

而它的难点就是编辑配置文件,而Docker Compose配置文件其实就是通过『docker-compose.yml』的模板文件(YAML格式)来定义的。所以我今天就以威联通NAS为例,来为大家简单介绍一下Docker Compose的使用方法。(我也想详细的介绍,奈何我自己也是啥也不懂的刚入门小白~~)

初识威联通Docker Compose

今天的演示NAS为威联通的威联通TS-464C,是它家今年上市的4盘位旗舰NAS,处理器采用Intel 赛扬N5095,比上代J4125处理器性能提升30%左右,显卡性能提升至300%,最主要的是,不管是Docker还是虚拟机,这货都完美支持,非常适合我这样的折腾党。

威联通(QNAP)TS-464C4盘位8G内存四核心处理器网络存储服务器内置双M.2插槽NAS私有云(453Dmini升级版)4699元京东去购买

『Docker Compose』威联通Docker的正确打开方式

🔺我们只要打开威联通的Docker套件应用『Container Station容器工作站』,点击“创建—--创建应用程序”

『Docker Compose』威联通Docker的正确打开方式

🔺就来到了威联通的Docker Compose配置页面,事实上威联通这里已经有现成的三个示例(配置文件)可以直接使用。

『Docker Compose』威联通Docker的正确打开方式

🔺比如说它这里有个WordPress示例,它其实是一个搭建个人博客的系统平台,但是它的架设条件依赖于 MySQL 数据库,通过这个现成的Docker Compose配置文件,我们直接点击“创建”,就能一键搞定WordPress的个人博客搭建了,并且在这个页面,你还可以根据自己的需求对配置文件进行修改。

『Docker Compose』威联通Docker的正确打开方式

🔺部署完成之后,我们就可以在容器这里看见一个“WordPress”的APP,点开之后,就能看见它下面是两个对应的Docker容器。

『Docker Compose』威联通Docker的正确打开方式

🔺并且我们后期还可以通过修改重新修改Docker Compose的配置。

Docker Compose配置文件简介

前面说过,Docker Compose配置文件是通过『docker-compose.yml』的模板文件(YAML格式)来定义的。所以为了更好的了解它,我们先来了解下Docker Compose配置文件中的常用的语法以及它的文件结构。

『Docker Compose』威联通Docker的正确打开方式

🔺我们还是以威联通自带的WordPress配置文件为大家说明:

  • version:dockers compose都是以“version: XX”来定义YAML 语法版本

  • image:指定为镜像名称或镜像ID,也就是dockers compose从互联网需要拉取的镜像

  • ports:端口映射设置,冒号前是NAS访问的实际端口,不可以和其它端口重复,冒号后是容器内端口。

  • volumes:设置卷挂载的路径,也就是容器的文件存放位置。冒号前面为本地路径,冒号后为容器路径,本地路径是NAS的真实地址,一般我们会根据需要自己通过NAS的文件管理提前新建。

  • restart:重启策略,根据实际需求即可。

  • environment:容器的环境变量,一般设置权限、时区、数据库等都是依靠环境变量来实现的。

  • depends_on:设置容器的优先启动,这个对于有些依赖服务很有必要,如果启动顺序发生问题,运行肯定会出错。

当然,还有一些是上面的配置文件没有出现的语法也比较常见:

  • command:覆盖容器启动后默认执行的命令

  • links:链接到其他服务容器

  • container_name:为容器指定一个名称,不一定是容器默认名称

  • extra_hosts:顾名思义,为指定容器添加hosts 文件,影视刮削不添加hosts 会刮削失败

  • volunes_from:挂载另一个服务或容器的所有数据卷

其实稍微熟练一点的NAS Docker玩家应该也能看出一些端倪了吧,对,没错,它其实和我们SSH的时候拉取的命令很多都是一样的,比如说ports其实就是-v,environment就是-e,ports就是-p。

当然,Docker Compose配置文件语法肯定不只是以上这些,我们作为普通玩家也不需要了解那么多,只需要知道一些常用的基础语法就可以了。

Docker Compose配置文件获取

OK,既然我们知道Docker Compose怎么使用了,我们就可以获取自己需要的Docker Compose配置文件了。

获取途径很简单,全球最大的镜像仓库『Docker Hub』就能满足我们。

Docker Hub官网:https://hub.docker.com/

『Docker Compose』威联通Docker的正确打开方式

🔺打开Docker Hub官网直接搜索我们需要的镜像并回车。比如我这里搜索下载神器 qbittorrent

『Docker Compose』威联通Docker的正确打开方式

🔺然后回搜索到很多 qbittorrent 的镜像,我们可以看每个镜像右边的星标数,也就是Stars的数量,数字越大表示这个镜像订阅的越多,也代表它越受欢迎。我就选取第二个吧,因为它的Stars数最多。

『Docker Compose』威联通Docker的正确打开方式

🔺打开之后在页面中就能看见该镜像的配置代码了。该镜像分别提供了docker-compose代码以及docker命令代码,大家可以仔细比对,其实左右两个代码可以相互转换的。

『Docker Compose』威联通Docker的正确打开方式

🔺比如说这里的docker-compose代码,其实我们只需要将volumes下面的路径(冒号前面的路径)改成自己NAS的真实路径,然后直接复制,粘贴到威联通的Docker Compose配置页面,点击“创建”按钮,搞定!

『Docker Compose』威联通Docker的正确打开方式

🔺不过并不是所有Docker Hub里面的镜像都会给出Docker Compose的配置,比如说我找到的国人优化版的qbittorrent 镜像,它只给出了Docker配置命令,那么我们就需要自己配置了,其实你只要掌握了Docker Compose配置的语法以及它的文件结构,基本上复制一个模板到电脑的记事本中,然后根据它的命令直接修改就可以了。

『Docker Compose』威联通Docker的正确打开方式

🔺自己配置好以后还可以粘贴带威联通的Docker Compose页面验证一下,基本是没有什么问题的。

Docker Compose部署实例

OK,下面我们就来实战一下吧!

先说单个Docker容器的创建。

『Docker Compose』威联通Docker的正确打开方式

🔺就以上步骤中我自己配置的那个国人版的qbittorrent容器,其实我们只需要在验证没问题的时候直接在上方输入应用程序名称,点击右下角的“创建”就可以了。

『Docker Compose』威联通Docker的正确打开方式

🔺然后回到Container Station主页,稍等一会就能看见创建好的qbittorrent容器了。

『Docker Compose』威联通Docker的正确打开方式

🔺点击qbittorrent容器旁边的链接图标,就能直接登录qbittorrent的WEB界面了。

然后我们再尝试搭建完整的家庭影音系统,前面说过,家庭影音系统需要三个容器,分别为管理下载的qB,管理海报墙的jellyfin,管理刮削的TMM。

因为我为了给你们演示前面已经创建了qbittorrent的容器,我这里还是希望用到那个容器,所以我首先要将前面创建的qbittorrent删掉才可以,因为我们不可能在同一容器内创建两个完全一样的镜像对吧。

『Docker Compose』威联通Docker的正确打开方式

🔺我个人是将所需要的三个Docker Compose的配置,也就是yaml文件全部复制粘贴到记事本中根据自己的需求编辑,有的找不到yaml配置咋办?和我前面说的一样,拉一个模板过来自己配置啊~

『Docker Compose』威联通Docker的正确打开方式

🔺配置好以后粘贴到威联通的Docker Compose配置页面,先验证一遍,没啥问题给应用程序起个名字,直接“创建”就可以了

『Docker Compose』威联通Docker的正确打开方式

🔺3个容器一次搞定!就是这么简单!

总结

总之,我个人认为,威联通的Docker Compose对于再NAS上部署Docker来说,应该是最好的方案了,当然,对于小白来说,还需要一定的学习成本,个人觉得自己准备几个yaml配置模板,基本上部署起来非常的快,用起来真的是爽歪歪~

我为啥不分享我的配置?因为授之以鱼不如授之以渔,我分享过来你们不一定能用,平且威联通的Docker Compose对配置要求非常严格,那怕是一个空格也会创建失败,所以你们只要掌握了方法,以后还不是随便玩转NAS中的Docker!

好了,以上就是今天给大家分享的内容,我是爱分享的Stark-C,如果今天的内容对你有帮助请记得收藏,顺便点点关注,我会经常给大家分享各类有意思的软件和免费干货!谢谢大家,咱们下期见~

展开 收起
25评论

  • 精彩
  • 最新
  • 这个学习还是挺难的,特别是没有模板的,网络也得写,小白还是谨慎操作,不然小心搞到nas失联?如果真的理解了配置一个docker容器的步骤,直接在官方的GUI也可以,对了有container3.0了,功能增加不少。

    校验提示文案

    提交
    其实我也在学习中,不过我目前觉得还好,常用的直接找相近的别的同镜像模板自己改,基本没啥问题。可能是我用的docker比较常见,目前配了十几个都没啥问题。

    校验提示文案

    提交
    收起所有回复
  • 打赏了,有空实践一下

    校验提示文案

    提交
    嗯嗯,谢谢

    校验提示文案

    提交
    收起所有回复
  • 呐,这个呢就是专业。先收藏了,再看步骤。

    校验提示文案

    提交
    专业谈不上,我也是学习中的小白 [高兴]

    校验提示文案

    提交
    收起所有回复
  • 威联通在虚拟化方面确实做得比群晖好,不过我现在都用portainer,portainer的app模板功能也支持docker compose,而且设置一次模板可以在不同的设备上部署,非常方便。

    校验提示文案

    提交
    唉,用了那么久的portainer竟然还没发现它也支持docker compose [喜极而泣]

    校验提示文案

    提交
    收起所有回复
  • 群晖没有docker compose,不过是不是可以装修portainer试试。

    校验提示文案

    提交
    DSM7.2不是原生支持了吗? [高兴]

    校验提示文案

    提交
    哦,还没升级,目前还是7.1.1

    校验提示文案

    提交
    收起所有回复
  • 大佬,compose模式的程序怎么删除呢?威联通新的container提示没有权限,咋搞呢

    校验提示文案

    提交
    你在控制台权限设置里设置下啊,按说不会有这样的情况发生

    校验提示文案

    提交
    收起所有回复
  • 博主,威联通怎么不能直接把yml放到某个文件夹下面,ssh进到这个文件夹用docker-compose up -d命令部署

    校验提示文案

    提交
    能啊,需要稍微设置哈,前天也有人问,我看看最近两天抽空出个教程吧

    校验提示文案

    提交
    收起所有回复
  • tip:node 用pnpm 装一个composerize 可以把run命令 改成compose 模式

    校验提示文案

    提交
  • 抄作业啦,自己组建私有云

    校验提示文案

    提交
  • 好东西,种草了!

    校验提示文案

    提交
  • 干货满满,收藏备用

    校验提示文案

    提交
  • 好文章 还是太专业了,小白不适用,我是一个小白花了2斤1年的时间 从对着命令打>群晖界面设置>威联通 >docker-compose 都用了一遍, 目前docker- compose是更新镜像,备份转移最简单快捷的

    校验提示文案

    提交
  • 要过一阵子docker,后来实在发现没啥有用的

    校验提示文案

    提交
  • docker自建的虚拟交换机默认没有开启ipv6,也不能手动更改,外网像移动这种只能通过ipv6%公网的怎么实现远程访问呢

    校验提示文案

    提交
    设置成桥接,用宿主机的ipv6地址访问

    校验提示文案

    提交
    收起所有回复
  • 一般去页面下抄,很多作者都po,优点就是特别直观,存储位置,端口什么的你能猜出来,慢慢就了解了

    校验提示文案

    提交
  • 用Docker Compose安装的教程好少,我都是抄的SSH安装命令!这两种方式稳定性有没有区别?

    校验提示文案

    提交
提示信息

取消
确认
评论举报

相关文章推荐

更多精彩文章
更多精彩文章
最新文章 热门文章
379
扫一下,分享更方便,购买更轻松