『和Cherry玩转NAS』 篇四:还在用套件?docker高级教学,一文学会compose使用,更有多平台可视化管理工具
前言
大家好,这里是可爱的Cherry
最近发的文章,Cherry是越来越懒了,丢了一个compose.yml就不管了,基本在介绍项目使用上了,没想到还是有很多朋友没有接触过,或者对docker-compose使用不熟悉。
因此本期,Cherry在上一篇玩转NAS之docker的基础上,重点讲一下docker-compose如何安装、使用,并且介绍一下非SSH使用docker-compose的一些方法。
Cherry不喜欢用套件,为什么?因为一是有洁癖,套件删除有没有遗留文件不清楚,二是不放心,套件属于二次封装,肯定不如直接原版用的放心。
compose介绍
一、什么是docker compose
docker compose是docker的多容器管理应用程序,用于定义、管理、运维多个docker容器的工具。
最简单的理解,就是docker(后面特指docker run指令)管理一个容器,compose管理多个容器。
🔻docker run、docker compose、container之间的管理。不仅限于容器本身,还包括卷、网络等所有docker的一切。
二、为什么建议使用docker compose
docker-compose的优势大概总结有三点。
🙂一是容器管理简易化。
所有容器的定义、运行都可以通过文本记录在册,通过修改yml配置文件可以轻松的更改和管理这些容器。
😊二是容器管理用持续化。
所有容器的配置,例如卷、镜像、网络都在yml配置文件里,无论何时,我都可以在yml文件和数据卷的合作下,轻松重启我的docker容器而不用担心容器丢失。
😘三是容器管理更安全。
compose的容器间访问,默认是互联互通,通过hostname的使用,可以让容器不暴露端口的情况下被同个项目下的容器所访问,大大提高了安全性。
三、docker compose的构成和使用
🔻核心文件
docker compose的核心是yml文件一般常用的是docker-compose.yml,或者compose.yml。
🔻核心指令(所有指令,都必须在docker-compose.yml文件所在的目录下执行)
#后台启动compose
docker-compose up -d
#关闭compose
docker-compose down
#查看日志
docker-compose logs -f
#查看当前compose容器运行情况
docker-compose ps
#进入compose容器下的某一个,hostname是ps后展示出的service名字,即上图service下一级的windows
docker-compose exec -it [hostname]
四、如何安装docker compose
🔻目前,成品NAS除群晖7.X系、威联通、铁威马外,其它NAS都还没有内置docker-compose,因此需要我们手动安全。
#输入以下指令,查看是否安装docker compose
docker-compose --version
🔻安装方法,首先通过finalshell等工具登录NAS,然后一次输入以下指令
#安装docker-compose
curl -L https://hub.gitmirror.com/https://github.com/docker/compose/releases/download/1.22.0/docker-compose-`uname -s`-`uname -m` > /usr/bin/docker-compose
#赋权
chmod +x /usr/bin/docker-compose
#验证docker compose
docker-compose -v
compose可视化管理
除了在SSH页面进行docker compose操作外,最重要的是docker-compose的可视化操作,先介绍2个第三方的compose可视化项目。
一、dockge
dockge是一款专门针对docker compose的可视化应用项目,由uptime kuma作者开发。该项目通过一个界面,实现了compose类目的整合。
通过可视化编辑yml文件,可以轻松管理和运维compose项目。
🟡所有dockge管理的compose项目,都必须将docker-compose.yml文件放到环境变量DOCKGE_STACKS_DIR所设置的目录下。
🔻dockge管理的compose路径格式如下,可以把所有项目纳入dockge管理
二、portianer
老牌dockerUI项目,放在dockge后面的原·因是整合效果和运维内容不如dockge那么多,不支持直接更新镜像文件。
🟡所有portianer管理的compose项目,都必须使用portainer的界面上进行新建。
三、群晖7.2——Container Manager
群晖作为头牌NAS系统,系统成熟度无疑是最高的,从7.2版本更新docker套件并支持compose项目管理依赖,将docker使用又纳入了一个新的高度。虽然目前群晖出了bee系列这种垃圾硬件卖系统的东西,但是传统的DS系列依旧好评如潮。
例如最新的双盘位DS224+,虽然采用传统的J4125,比不上目前的N100等cpu,但是在日常使用中已经足够了,要知道DS920+都战了4年了依旧是推荐之首。
🔻使用cotainer manager管理compose项目
四、威联通——Container Station
威联通方面,最新的当属TS-466C,4盘位最新NAS,采用N6005处理器,在性能上单核和多核分别较J4125提升58%和52%左右。
和群晖的差异可能更多的还是在操作系统上,传统的转圈和卡顿,不过这个价格还说啥呢,够香了就是。
如果对威联通操作系统有顾虑的,可以尝试黑一个玩玩,再决定。
🔻威联通使用container station管理compose项目
五、UNRAID——Compose
🔻在应用商城,搜索docker compose
,安装图里的插件即可。
🔻安装以后,在docker里就有docker compose可视化页面了
compose示例
docker-compose.yml的语法,其实和docker run十分相似,简化了link的依赖关系,将四大元素分层级进行定义,如最主要的卷、网络、端口、环境变量其实是不变的,就是从单数增加到了复数。
一、yal文件书写要求
这里给大家讲解一下常用的docker-compose.yml文件的格式和规范。yml文件严格遵守缩进符,层级错误会导致无法部署,因此使用空格不要使用tab。
二、代码释义
➡version: "3"
代表这当前yml文件的语言版本,目前常用的是2.X和3.X版本,主流为3.X版本,可空
➡name: ABC
代表当前项目名字为ABC,可空
➡services:
代表下属层级的都是服务,就是我们的容器
➡s1:容器的hostname,理解为项目内的id,唯一且必填
➡container_names:容器名称,等同于docker run的name,可空
➡image:镜像,等同于docker run的image,必填
➡env_file:环境变量文件,等同于docker run的–env,可空
➡environment:环境变量,等同于docker run的-e,根据项目要求更改
➡volumes:存储卷,等同于docker run的-v,支持绑定和卷,如果是卷需要在下面的volumes去新增。
➡networks:网络,等同于docker run的–net,指定容器所在的网络
➡restart:重启策略,等同于docker run的restart,自定义
➡ports:端口,等同于docker run的-p,自定义
➡depends_on:依赖,等同于docker run的link,表示容器间的依赖关系
➡s2:另外一个容器
➡volumes:容器卷,这里只填写卷模式,如果是绑定模式则在容器内部定义。
➡db1:新建一个叫db1的卷
➡db2:新建一个叫db2的卷
➡networks:
➡net1:新建一个叫net1的网络,单个compose项目可以不需要,会自动生成项目名称的网络。
三、如何修改yml文件
对于部署一个docker compose项目来说,修改yml文件是最核心的工作。一般来说官方都会提供一个比较完整的yml文件,我们需要修改的仅仅是涉及到本地化部署的一些内容,那就是以下4个。
🔻端口,左侧是宿主机的端口,可以自定义;右侧是容器端口,不能修改。
🔻存储(绑定),左侧是绑定模式的宿主机路径,可以自定义;右侧是容器路径,不能修改。
比如我要改到/volume1/abc
下,那就是- /volume1/abc:/db_a
🔻存储(卷),左侧是卷模式下的卷名称,可自定义,;右侧是容器路径,不能修改。
🔻环境变量,这个根据每个项目的不同进行调整即可。
现存docker,更改为compose
经过群友介绍,有一个项目可以将本地现有的docker全部导出为compose文件,效果一等一的好。
因为时间有限,Cherry还没体验过这个项目,因此明后天体验完以后,会把该项目完整的使用方法梳理出来。
欢迎朋友们评论区讨论留言。我会定期更新关注NAS使用方法、开源软件与Docker软件、游戏与生活相关内容,喜欢的朋友请关注、点赞、留言支持。
作者声明本文无利益相关,欢迎值友理性交流,和谐讨论~
值友6007809248
校验提示文案
AI小值-电脑数码
校验提示文案
JasonWu
校验提示文案
sarie001
校验提示文案
dafeixia
校验提示文案
大志若勇Nodis
校验提示文案
拔刀非我愿
校验提示文案
沈二庄
校验提示文案
龙龙七
校验提示文案
有木有先生
校验提示文案
梦太晓
校验提示文案
杯具上演帝
校验提示文案
梁下君子
校验提示文案
zczc0417
校验提示文案
歪我是小爽啊
校验提示文案
歪我是小爽啊
校验提示文案
杯具上演帝
校验提示文案
值友6007809248
校验提示文案
梦太晓
校验提示文案
有木有先生
校验提示文案
zczc0417
校验提示文案
歪我是小爽啊
校验提示文案
梁下君子
校验提示文案
歪我是小爽啊
校验提示文案
龙龙七
校验提示文案
沈二庄
校验提示文案
拔刀非我愿
校验提示文案
大志若勇Nodis
校验提示文案
dafeixia
校验提示文案
sarie001
校验提示文案
JasonWu
校验提示文案
AI小值-电脑数码
校验提示文案