本文共 1727 字,大约阅读时间需要 5 分钟。
最近项目组内准备搞一个培训,大家要轮番给其他成员讲点什么。正赶上我有心钻研一下docker。秉承着以教会别人来证明自己学会的理念,对最近所学进行整理。即为笔记也作讲义。
Docker的基本概念和安装方法网上一撸一片,在这里就不一一赘述了。只需要明白镜像就像是面向对象程序设计中的“类”,而容器就是“实例”。至于仓库作用嘛,就是在用来存放镜像的。
下面整理一些docker的操作命令。
docker pull [选项] [Docker Registry地址]<仓库名>:<标签>
docker images
这玩意就理解成已经失效的镜像好了,具体有那些可以用下面的命令查一下:
docker images -f dangling=true
既然失效了就可以随意删除,删除命令如下:
docker rmi $(docker images -q -f dangling=true)
docker commit [选项] <容器ID或容器名> [<仓库名>[:<标签>]]
docker commit \
--author "Tao Wang <twang2218@gmail.com>" \
--message "修改了默认网页" \
webserver \
nginx:v2
其中--author是指定修改的作者,而--message则是记录本次修改的内容,webserver 是容器名。
这点和git版本控制相似,不过这里这些信息可以省略留空。
敲黑板:
docker commit命令除了学习之外,还有一些特殊的应用场合,比如被入侵后保存现场等。但是,不要使用docker commit定制镜像,定制行为应该使用Dockerfile来完成。
docker create -it --name truffle --privileged=true -v/root/host/volume:/home/docker/volume ubuntu:16.04 bash
红色部分可以改动,--name是指定容器名称,-v是数据卷操作,可以理解为将主机目录映射到容器中的某刻目录,--privileged=true 使得docker中的映射目录对物理机中的目录有可操作权限,ununtu:16.04就是启动基于的镜像。
docker run --name truffle -v /root/host/volume:/home/docker/volume -it -d --security-opt seccomp=unconfined ubuntu:16.04 bash
红色部分可以改动,--name是指定容器名称,-v是数据卷操作,可以理解为将主机目录映射到容器中的某刻目录,ununtu:16.04就是启动基于的镜像。
docker start [容器名称]
docker stop [容器名称]
可以使用docker rm来删除一个处于终止状态的容器。例如
$sudo docker rm trusting_newton
如果要删除一个运行中的容器,可以添加-f 参数。Docker会发送SIGKILL信号给容器。
用docker ps -a 命令可以查看所有已经创建的包括终止状态的容器,如果数量
太多要一个个删除可能会很麻烦,用docker rm $(docker ps -a -q)可以全部清理掉。
敲黑板:
这个命令其实会试图删除所有的包括还在运行中的容器,不过就像上面提过
的docker rm默认并不会删除运行中的容器。
docker images -a
docker images [仓库] [-f 条件]
转载地址:http://nxixi.baihongyu.com/