docker高级教学,一文学会compose使用,有多平台可视化管理工具
bigegpt 2024-09-24 07:10 4 浏览
本内容来源于@什么值得买APP,观点仅代表作者本人 |作者:可爱的小cherry
前言
大家好,这里是可爱的Cherry
最近发的文章,Cherry是越来越懒了,丢了一个compose.yml就不管了,基本在介绍项目使用上了,没想到还是有很多朋友没有接触过,或者对docker-compose使用不熟悉。
因此本期,Cherry在上一篇玩转NAS之docker的基础上,重点讲一下docker-compose如何安装、使用,并且介绍一下非SSH使用docker-compose的一些方法。
Cherry不喜欢用套件,为什么?因为一是有洁癖,套件删除有没有遗留文件不清楚,二是不放心,套件属于二次封装,肯定不如直接原版用的放心。
文章
『和Cherry玩转NAS』 篇一:干货满满,新手必读,一文掌握docker核心技巧,轻松成为NAS高手——docker(篇一)
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软件、游戏与生活相关内容,喜欢的朋友请关注、点赞、留言支持。
作者声明本文无利益相关,欢迎值友理性交流,和谐讨论~
相关推荐
- 5分钟调色大片的方法(5分钟调色大片的方法有哪些)
-
哈喽大家好。在大家印象中一定觉得ps非常难学非常难。大家不要着急,小编的教学都是针对ps零基础的同学的,而且非常实用哦。只要大家跟着图文练习一两遍,保证大家立马学会~!好了,废话少说,下面开始我们今天...
- 闪白特效原来是这么用的(闪白特效怎么使用)
-
作者|高艳侠订阅|010-86092062闪白特效是影视作品中应用比较多的效果之一,那么具体该在哪些场景使用闪白特效?具体该如何操作?下面就以AdobePremiere(以下简称PR)为例,...
- ppt常用小图标去哪里找?3个矢量素材网站推荐!
-
ppt是一个注重可视化表达的演示载体,除了高清图片,ppt中另一类常用的素材是各种小图标,也叫矢量图标,巧妙运用小图标能提升整体美观度和表现力,那么ppt常用小图标去哪里找呢?为方便各位快速找到合适的...
- 有什么好用的截图录屏工具?试试这9款
-
经常有朋友反馈苦于缺乏截屏和录屏的趁手工具,本期我们分享几个相当好用的截屏和录屏工具,希望能帮到大家。ScreenToGifScreenToGif是一款免费且开源的录屏工具。此款工具最大的特点是可以...
- 配色苦手福音!专业快速色环配色PS插件
-
今天橘子老师给的大家介绍的是一款快速配色的插件,非常强大配色苦手福音来啦!(获取方式见文末)【插件介绍】配色在后期设计中占有主导地位,好的配色能让作品更加抢眼Coolorus这款专业的配色插件,能够...
- 如何用PS抠主体?(ps怎么抠主体)
-
1.主体法抠图-抠花苞和花梗导入一张荷花苞的照片,点击上图中顶部“选择”菜单栏,下拉单击“主体”。可以看到,只有花苞被选中,但是花梗并没有被选中。接下来单击上图中左侧工具栏的“快速选择工具”,上图中顶...
- 2799元的4K电视,有保障吗?(买4k电视机哪个品牌好)
-
在上一期《电脑报》的3·15专题报道中,我们揭露了一款不靠谱的42英寸4K智能电视——TCLD42A561U。这款售价2699元的4K智能电视不仅4K画质方面存在严重问题,而且各种功能和应用体验也不理...
- 苹果电脑的Touch Bar推出一段时间了 这款工具可以帮你开发适用于它的APP
-
距离苹果推出带有TouchBar的MacBookPro已经有一段时间了,除了那些像Adobe、Google和Microsoft大公司在开发适用于TouchBar的应用之外,其实还有很多独立的开...
- 如魔法般吸取颜色的桌灯(如魔法般吸取颜色的桌灯叫什么)
-
色彩为生活带来的感官刺激,逐渐被视为理所当然。一盏桌灯运用它的神奇力量,将隐藏于物件中的颜色逐一释放,成为装点环境的空间魔法师。ColorUp是一款可以改变颜色的吸色台灯,沿用传统灯泡的造型,融入了拾...
- 一篇文章带你用jquery mobile设计颜色拾取器
-
【一、项目背景】现实生活中,我们经常会遇到配色的问题,这个时候去百度一下RGB表。而RGB表只提供相对于的颜色的RGB值而没有可以验证的模块。我们可以通过jquerymobile去设计颜色的拾取器...
- ps拾色器快捷键是什么?(ps2019拾色器快捷键)
-
ps拾色器快捷键是什么?文章末尾有获取方式,按照以下步骤就能自动获得!学会制作PS特效需要一定程度的耐心和毅力。初学者可以从基本的工具和技术开始学习,逐渐提高他们的技能水平。同时,观看更多优秀的特效作...
- 免费开源的 Windows 截图录屏工具,支持 OCR 识别和滚动截图等
-
功能很强大、安装很小巧的免费截图、录屏工具,提供很多使用的工具来帮我么能解决问题,推荐给大家。关于ShareXShareX是一款免费的windows工具,起初是一个小巧的截图工具,经过多年的迭...
- 入门到精通系列PS教程:第13篇 · 拾色器、颜色问题说明及补充
-
入门到精通系列PS教程:第13篇·拾色器、颜色问题说明及补充作者|侯潇问题说明我的第12篇教程里,有个小问题没有说清楚。要说是错误,又不算是错误,只是没有说准确。写完那篇教程后,因为已经到了深...
- PS冷知识:用吸管工具吸取屏幕上的任意颜色
-
今天,我们给大家介绍PS中的一个冷知识:用吸管工具可以吸取屏幕上的任意颜色。其实,操作起来是非常简单的。大多数情况下,我们认为,PS的吸管工具只能吸取PS软件作图区域范围内的颜色,最多加上画布四周的...
- Windows 11 将提供内置颜色选择器工具
-
Windows11内置了颜色选择器,可以扫描并识别屏幕上的颜色并生成颜色代码。此外,微软还利用人工智能技术,让屏幕上的文本扫描和选择变得更加便捷。这两项功能均已在SnippingToolv1...
- 一周热门
- 最近发表
- 标签列表
-
- mybatiscollection (79)
- mqtt服务器 (88)
- keyerror (78)
- c#map (65)
- xftp6 (83)
- bt搜索 (75)
- c#var (76)
- xcode-select (66)
- mysql授权 (74)
- 下载测试 (70)
- linuxlink (65)
- pythonwget (67)
- androidinclude (65)
- libcrypto.so (74)
- linux安装minio (74)
- ubuntuunzip (67)
- vscode使用技巧 (83)
- secure-file-priv (67)
- vue阻止冒泡 (67)
- jquery跨域 (68)
- php写入文件 (73)
- kafkatools (66)
- mysql导出数据库 (66)
- jquery鼠标移入移出 (71)
- 取小数点后两位的函数 (73)