选项-l,–label
-l是–label的简写,可以在使用docker run命令时,为要创建的容器提供元数据(metadata)。
请看下面的bash指令,该指令使用docker run运行alpine容器,并使用-l设置MY_CONTAINER_ID和MY_CONTAINER_NAME两个标签,并使用-d进行后台运行,-it以交互模式访问alpine。
docker run -dit -l MY_CONTAINER_ID=1 -l MY_CONTAINER_NAME=my-alpine alpine
我们使用docker ps查看,以–filter作为筛选条件,指定显示元数据是MY_CONTAINER_ID的标签容器
docker ps --filter "label=MY_CONTAINER_ID"
可以看到正常显示出我们创建好的容器。
我们还可以使用docker inspect 命令来查看容器的低级信息。
docker inspect silly_merkle
可以看到,Labels包含了我们传递给容器两个标签。
备注:类似alpine这种类linux系统的容器,docker run时,必须使用-dit(-d,-i和-t的组合)选项,否则启动容器后,容器因为没有可进行的操作而退出。docker ps是发现不了创建好的容器的。
选项–label-file
顾名思义,这个选项可以将提供给它的一个文件中的标签设置给容器。
上图是我创建的一个label-file文件,该文件设定了两个标签MY-CONTAINER-COLOR和MY-CONTAINER-WEIGHT,那么再来一次指令来测试效果:
docker run -dit --label-file ./label-file alpine
结果如下:
我们可以看到,通过docker ps可以列出前后两个以alpine为镜像的容器competent_brattain和silly_merkle。但通过–filter过滤的容器,只有competent_brattain。
备注:
- label-file文件名任意取,叫什么都可以。
- 以#开头的行会被视为注释而被忽略,其它位置的#会被作为变量的一部分。