docker进阶教学,学会使用多平台可视化管理工具compose

前言

大家好,这是可爱的Cherry

最近的文章,Cherry变得越来越懒了。他只是丢失了一个compose.yml 并忽略了它。他基本介绍了该项目的使用。没想到还有很多朋友没有接触过或者不熟悉docker-compose的使用。

因此,本期Cherry在上一篇玩转NAS上docker的基础上,重点介绍了如何安装和使用docker-compose,并介绍了一些无需SSH的情况下使用docker-compose的方法。

Cherry不喜欢使用套件,为什么?因为首先我有洁癖,不清楚删除套件后是否还有文件残留。其次,我感到不安。该套件是二次包,所以肯定不如使用原版安全。

文章

《和Cherry一起玩转NAS》第1篇:实用资料满满,新手必读,一文掌握docker核心技能,轻松成为NAS高手——docker(第1篇)

compose介绍

一、什么是docker compose

docker compose 是docker 的多容器管理应用程序,用于定义、管理和操作多个docker 容器的工具。

最简单的理解就是docker(以下具体简称docker run命令)管理一个容器,compose管理多个容器。

docker run、docker compose 和容器之间的管理。不仅是容器本身,还包括有关Docker 的所有内容,例如卷、网络等。

二、为什么建议使用docker compose

docker-compose的优点可以概括为三点。

首先,简化了容器管理。

所有容器的定义和操作都可以用文本记录,并且可以通过修改yml配置文件轻松更改和管理这些容器。

第二个是使用持久化来进行容器管理。

所有容器配置,例如卷、镜像和网络都在yml 配置文件中。任何时候,在yml文件和数据卷的配合下,我都可以轻松地重启我的docker容器,而不用担心容器丢失。

第三,容器管理更安全。

Compose的容器间访问默认是互连的。通过使用主机名,可以让同一个项目下的容器访问容器,而无需暴露端口,大大提高了安全性。

三、docker compose的构成和使用

核心文件

docker compose的核心是yml文件。一般常用docker-compose.yml或compose.yml。

核心指令(所有指令必须在docker-compose.yml文件所在目录执行)

#开始在后台撰写

docker-compose up -d

#关闭撰写

docker-compose 下来

#查看日志

docker-compose 日志-f

#查看当前compose容器运行状态

docker-compose ps

#输入撰写容器之一。 hostname是ps后面显示的服务名,就是上图中服务的下一级的windows。

docker-compose exec -it [主机名]

docker进阶教学,学会使用多平台可视化管理工具compose

四、如何安装docker compose

目前,Synology 7 除外。

#输入以下命令检查docker compose是否安装

docker-compose –版本

安装时,先通过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的可视化操作。首先,我们将介绍两个第三方撰写可视化项目。

一、dockge

通过可视化编辑yml文件,您可以轻松管理和操作compose项目。

所有由dockge管理的compose项目都必须将docker-compose.yml文件放置在环境变量DOCKGE_STACKS_DIR设置的目录中。

由dockge管理的compose路径的格式如下。所有项目都可以纳入dockge管理。

二、portianer

老dockerUI项目之所以放在dock后面,是因为集成效果和运维内容没有dock多,而且不支持直接更新镜像文件。

所有由portianer 管理的compose 项目都必须使用portianer 界面创建。

三、群晖7.2——Container Manager

作为顶级的NAS系统,Synology无疑拥有最高的系统成熟度。它从7.2版本更新了docker套件,并支持compose项目管理依赖,将docker的使用提升到了一个新的水平。虽然群晖目前以蜜蜂系列这样的垃圾硬件来卖系统,但传统的DS系列仍然好评如潮。

比如最新的双盘位DS224+采用的是传统的J4125,虽然不如现在的N100等CPU,但日常使用也足够了。要知道DS920+已经上市4年了,依然是首选。

使用cotainer manager 来管理compose 项目

四、威联通——Container Station

对于QNAP,最新的一款是TS-466C,这是最新的4 盘位NAS,采用N6005 处理器。其单核和多核性能分别比J4125高出约58%和52%。

和群晖的区别可能更多的是操作系统、传统的旋转和滞后,但价格没啥可说的,够用就好了。

QNAP 使用容器站来管理撰写项目

五、UNRAID——Compose

在应用商店中搜索docker compose并安装图中插件。

安装完成后,docker中会有一个docker compose可视化页面。

compose示例

docker-compose.yml 的语法实际上与docker run 非常相似。它简化了链接的依赖关系,并分层定义了四大元素。例如,最重要的卷、网络、端口和环境变量实际上是不同的。变化的是它从单数增加到了复数。

一、yal文件书写要求

docker进阶教学,学会使用多平台可视化管理工具compose

这里给大家讲解一下常用的docker-compose.yml文件的格式和规范。 yml 文件严格遵守缩进。错误的级别将导致部署失败,因此请使用空格而不是制表符。

二、代码释义

版本: \’3\’

代表当前yml文件的语言版本。目前常用的版本有2.X和3.X。主流版本是3.X。它可以留空。

名称: ABC

表示当前项目名称为ABC,可以为空

服务:

代表下级的都是服务,就是我们的容器。

s1:容器的主机名,理解为项目内的id,唯一且必填

container_names:容器名称,相当于docker run的名称,可以为空

image:镜像,相当于docker run的镜像,必填

env_file:环境变量文件,相当于docker run的–env,可以为空

environment:环境变量,相当于docker run的-e,根据项目需求更改

Volumes:存储卷,相当于docker run的-v,支持绑定和卷。如果是卷,需要添加到下面的卷中。

networks:网络,相当于docker run的–net,指定容器所在网络

restart:重启策略,相当于docker run的重启,自定义

ports:端口,相当于docker run的-p,自定义

depends_on:依赖关系,相当于docker run的链接,表示容器之间的依赖关系

s2:另一个容器

体积:容器体积。这里只填写音量模式。如果是绑定模式,则在容器内部定义。

db1:创建一个名为db1 的新卷

db2:创建一个名为db2 的新卷

网络:

net1:创建一个名为net1 的新网络。对于单个compose 项目来说这不是必需的。将自动生成具有项目名称的网络。

三、如何修改yml文件

对于部署docker compose项目来说,修改yml文件是核心任务。一般来说,官方都会提供比较完整的yml文件。我们需要修改的只是一些与本地化部署相关的内容,分别是以下4个。

端口,左侧为主机端口,可自定义;右侧为集装箱港口,不可修改。

存储(绑定),左侧为绑定模式下的主机路径,可自定义;右侧是容器路径,不可修改。比如我想改成/volume1/abc,即-/volume1/abc:/db_a

存储(卷),左侧为卷模式下的卷名,可自定义;右侧是容器路径,不可修改。

环境变量,这个可以根据每个项目的差异进行调整。

现存docker,更改为compose

经过一群朋友介绍,有一个项目可以将本地已有的docker全部导出成compose文件,效果一流。

由于时间有限,Cherry还没有体验过这个项目,所以明天和后天体验完之后,他会整理一下这个项目的完整用法。

用户评论


孤独症

哇,终于找到一篇讲docker compose的教程了,一直想学怎么管理多个容器,感谢分享!

    有12位网友表示赞同!


减肥伤身#

compose太好用了,一键部署多个容器,简直是效率神器!

    有19位网友表示赞同!


折木

docker compose确实很强大,可以更方便地管理应用,推荐给大家!

    有19位网友表示赞同!


坏小子不坏

教程很棒,一步步讲解,小白也能轻松上手,强烈推荐!

    有13位网友表示赞同!


终究会走-

这篇文章写得很详细,讲解了compose的各种用法,学完感觉收获满满!

    有8位网友表示赞同!


冷青裳

多平台可视化管理,真的太方便了,再也不用担心命令行操作了!

    有12位网友表示赞同!


残留の笑颜

之前一直用docker命令行操作,现在终于找到了更好的管理工具!

    有15位网友表示赞同!


有恃无恐

docker compose太适合我的项目了,多个容器之间能方便地协调运行!

    有20位网友表示赞同!


虚伪了的真心

教程内容很实用,尤其是多平台可视化管理工具的介绍,很值得学习!

    有13位网友表示赞同!


拥菢过后只剰凄凉

终于能用compose管理多个容器了,效率提升不少!

    有7位网友表示赞同!


玻璃渣子

看完这篇教程,对docker compose有了更深的了解,感谢作者分享!

    有16位网友表示赞同!


迷路的男人

docker compose确实很强大,推荐大家学习一下!

    有15位网友表示赞同!


无寒

学完这篇文章,感觉对docker的理解又进了一步!

    有18位网友表示赞同!


烟雨萌萌

多平台可视化管理,让docker管理变得更轻松!

    有7位网友表示赞同!


。婞褔vīp

compose真的太方便了,简直是docker的必备工具!

    有9位网友表示赞同!


强辩

文章内容很丰富,讲解很清晰,值得收藏学习!

    有12位网友表示赞同!


心贝

教程非常实用,强烈推荐大家学习!

    有6位网友表示赞同!


安之若素

compose的用法很简单,上手很快,强烈推荐!

    有13位网友表示赞同!


黑夜漫长

之前一直不知道怎么管理多个容器,现在终于找到了解决方法!

    有5位网友表示赞同!


海盟山誓总是赊

docker compose,效率提升神器!

    有6位网友表示赞同!

上一篇
下一篇

为您推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们

联系我们

0898-88881688

在线咨询: QQ交谈

邮箱: email@zhutibaba.com

工作时间:周一至周五,9:00-17:30,节假日休息