Docke 1.12 基础篇:48条命令(6)

本文介绍了 Docker 1.12 版本中的关键命令,包括管理卷、网络、Swarm 和插件等功能,并详细解释了 stack、deploy 和 update 命令的使用方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

docker1.12的48条命令,至此已基本仅余下10条,这这篇文章之中,我们将会来看一下剩下10条命令用来做什么的。

docker命令

项番命令详解
No.47volumeManage Docker volumes
No.21networkManage Docker networks
No.41swarmManage Docker Swarm
No.22nodeManage Docker Swarm nodes
No.36serviceManage Docker services
No.6deployCreate and update a stack from a Distributed Application Bundle (DAB)
No.8eventsGet real time events from the server
No.24pluginManage Docker plugins
No.37stackManage Docker stacks
No.45updateUpdate configuration of one or more containers

命令参照

因为诸如volume/network/swarm,与其说其是一条命令,不如说是一个机能,参照前面写过的一些文章,可能会比简单地看一个例子有更好的效果

项番命令详解URL
No.47volumeManage Docker volumeshttp://blog.youkuaiyun.com/liumiaocn/article/details/52028007
No.21networkManage Docker networkshttp://blog.youkuaiyun.com/liumiaocn/article/details/52296347 http://blog.youkuaiyun.com/liumiaocn/article/details/52318289
No.41swarmManage Docker Swarmhttp://blog.youkuaiyun.com/liumiaocn/article/details/52179195
No.22nodeManage Docker Swarm nodeshttp://blog.youkuaiyun.com/liumiaocn/article/details/52179195
No.36serviceManage Docker serviceshttp://blog.youkuaiyun.com/liumiaocn/article/details/52203853 http://blog.youkuaiyun.com/liumiaocn/article/details/52206292

plugin

plugin是docker1.12重要的一个变更之一,plugin的内置管理在这个版本算是开了一个头了

[root@liumiaocn tmp]# docker plugin ls
NAME                TAG                 ACTIVE
[root@liumiaocn tmp]# docker plugin install tiborvass/no-remove
Plugin "tiborvass/no-remove" is requesting the following privileges:
 - network: []
 - mount: [/data]
Do you grant the above permissions? [y/N] y
tiborvass/no-remove
[root@liumiaocn tmp]# docker plugin ls
NAME                  TAG                 ACTIVE
tiborvass/no-remove   latest              true
[root@liumiaocn tmp]#

events

可以查看发生过的events,详细功能和kubectl大体类似,稍有区别,同质化。比如可以用如下命令查看1个小时之内发生过的event

[root@liumiaocn tmp]# docker events --since '1h'
2016-09-26T19:48:25.244295472-04:00 plugin pull e7ee36b1e8f7820f84806f6b80c60c583a78b6af9d9f346b1c773489f27a153e (name=tiborvass/no-remove:latest)
2016-09-26T19:48:33.152661185-04:00 plugin enable e7ee36b1e8f7820f84806f6b80c60c583a78b6af9d9f346b1c773489f27a153e (name=tiborvass/no-remove:latest)'

可以看到这正是刚刚演示plugin时所留下的痕迹

update

用于更新container设定,无需停止container直接更新相关设定,比如我们用-it方式启动一个busybox的实例

[root@liumiaocn tmp]# docker run -it --name busybox busybox /bin/sh
/ #

在一个新的终端使用前面学到的docker stats可以看到MEMORY LIMIT被设定为了 976.9M
CONTAINER CPU % MEM USAGE / LIMIT MEM % NET I/O BLOCK I/O PIDS
321513a3e7a6 0.00% 1.02 MiB / 976.9 MiB 0.10% 648 B / 648 B 1.057 MB / 0 B 0

由于busybox很小,我们使用update调整一下MEMORY LIMIT到20M

[root@liumiaocn ~]# docker update --memory 20M busybox
busybox
[root@liumiaocn ~]#

再次使用docker stats命令即可看到MEMORY LIMIT已经被动态的调整为20M了
CONTAINER CPU % MEM USAGE / LIMIT MEM % NET I/O BLOCK I/O PIDS
d3d7f8934421 0.00% 1.016 MiB / 20 MiB 5.08% 648 B / 648 B 1.057 MB / 0 B 0

stack

在config一个stack之前,我们需要有一个DAB,DAB是什么?Distributed Application Bundle的缩写。DAB其实准确地来说是docker-compose 1.8引入的一个实验性的特性,
我们用Dockerfile可以Build一个镜像,用docker-compose.yml就可以生成一个DAB,其实熟悉docker生态链中其他的产品的话就会知道,大家现在都是这样么做的。
无非是编排的时候多个镜像/多台机器等等的信息考虑进去之后仍然能够更容易编排和使用。使用docker-compose bundle就可以从一个docker-compose.yml生成一个dab文件,
我们接下来看一下如何生成一个dab,以及如何使用一个dab来config一个stack.

[root@liumiaocn docker]# cat docker-compose.yml
version: '2'
services:
  nginx:
    image: nginx
    ports:
      - "80:80"
[root@liumiaocn docker]# docker-compose bundle
Wrote bundle to docker.dab
[root@liumiaocn docker]# cat docker.dab
{
  "Services": {
    "nginx": {
      "Image": "nginx@sha256:1ebfe348d131e9657872de9881fe736612b2e8e1630e0508c354acb0350a4566",
      "Networks": [
        "default"
      ],
      "Ports": [
        {
          "Port": 80,
          "Protocol": "tcp"
        }
      ]
    }
  },
  "Version": "0.1"
}[root@liumiaocn docker]#

stack config

[root@liumiaocn demo]# docker stack config demo
Loading bundle from demo.dab
{
    "Version": "0.1",
    "Services": {
        "nginx": {
            "Image": "nginx@sha256:1ebfe348d131e9657872de9881fe736612b2e8e1630e0508c354acb0350a4566",
            "Ports": [
                {
                    "Protocol": "tcp",
                    "Port": 80
                }
            ],
            "Networks": [
                "default"
            ]
        }
    }
}[root@liumiaocn demo]#

鉴于其余的子命令会需要集群的环境,我们会在swarm的后续文章中继续研究stack和deploy这些experimental的特性。

总结

至此48条命令简单过了一遍,但是这还远远不够,比如生成container的create命令,可设定的option多达82个,如何使用,这是摆在面前的问题。仔细地研究,谨慎地使用,以走马观花的理解作为下面更为深入的理解的开始吧。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值