Docker CLI docker plugin 常用命令

Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的 Linux或Windows操作系统的机器上,也可以实现虚拟化。Docker是内核虚拟化,不使用Hypervisor是不完全虚拟化,依赖内核的特性实现资源隔离。本文主要介绍Docker CLI 中 docker plugin 常用命令。

1、docker plugin 简介

Docker Plugin 是 Docker 社区提供的一种扩展机制,可以通过插件来增强 Docker 引擎的功能。Docker Plugin 可以让我们快速、轻松地扩展 Docker 引擎的功能,将其变得更加灵活和可定制化。

参考文档https://docs.docker.com/engine/reference/commandline/plugin/

2、docker plugin 语法

docker plugin COMMAND

3、docker plugin 命令

1)使用 Docker Plugin 来添加一个自定义的网络插件

我们需要创建一个名为 

my-network-plugin 的目录,并在其中创建一个 

config.json 文件,用于存储插件的配置信息。

{
  "Name": "my-network-plugin",
  "Description": "A custom network plugin for Docker",
  "Type": "network",
  "Interface": {
    "Types": ["*"]
  }
}

2)需要编写一个 Python 脚本作为插件的实现。

#!/usr/bin/env python

import argparse
import os

def create_network(network_id, options):
    print("Creating network: %s" % (network_id))

def delete_network(network_id):
    print("Deleting network: %s" % (network_id))

def main():
    parser = argparse.ArgumentParser(description='Custom Docker network plugin')
    parser.add_argument('--docker-plugin-mode', type=int)
    parser.add_argument('--network-id')
    parser.add_argument('--create', nargs='?', const=True)
    parser.add_argument('--delete', nargs='?', const=True)
    parser.add_argument('--option', action='append')
    args = parser.parse_args()

    if args.create:
        create_network(args.network_id, args.option)
    elif args.delete:
        delete_network(args.network_id)

if __name__ == '__main__':
    main()

3)需要将插件加载到 Docker 引擎中

$ docker plugin install my-network-plugin .
$ docker plugin enable my-network-plugin

4)使用自定义网络插件来创建和删除 Docker 网络

$ docker network create --driver=my-network-plugin my-network
$ docker network rm my-network

4、子命令

命令

描述

docker plugin create

从根文件系统和配置文件创建插件。

插件数据目录必须包含config.json和

rootfs目录。

docker plugin disable

禁用一个插件。

docker plugin enable

启用一个插件。

docker plugin inspect

显示一个或多个插件的详细信息。

docker plugin install

安装一个插件。

docker plugin ls

列出所有安装的插件。

docker plugin push

将一个插件推送到registry。

docker plugin rm

删除一个或多个插件。

docker plugin set

更改插件的设置。

docker plugin upgrade

升级一个已经存在的插件。

推荐阅读
cjavapy编程之路首页