Docke 1 12 基础篇 48条命令 6

Posted firsttry

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Docke 1 12 基础篇 48条命令 6相关的知识,希望对你有一定的参考价值。

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

docker命令

项番命令详解
No.47 volume Manage Docker volumes
No.21 network Manage Docker networks
No.41 swarm Manage Docker Swarm
No.22 node Manage Docker Swarm nodes
No.36 service Manage Docker services
No.6 deploy Create and update a stack from a Distributed Application Bundle (DAB)
No.8 events Get real time events from the server
No.24 plugin Manage Docker plugins
No.37 stack Manage Docker stacks
No.45 update Update configuration of one or more containers

命令参照

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

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]#
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12

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)
  • 1
  • 2
  • 3

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

update

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

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

在一个新的终端使用前面学到的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 ~]#
  • 1
  • 2
  • 3

再次使用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]#
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27

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]#
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19

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

总结

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

再分享一下我老师大神的人工智能教程吧。零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到我们人工智能的队伍中来!https://blog.csdn.net/jiangjunshow








以上是关于Docke 1 12 基础篇 48条命令 6的主要内容,如果未能解决你的问题,请参考以下文章

Docke 1 12 基础篇 48条命令 3

Docke 1 12 基础篇 48条命令 1

Docke 1 12 基础篇 48条命令 1

Docke--基础篇

docke--Dockerfile构建docker镜像

linux线程时间片多长