常用Docker命令整理

Docker基本概念

  • Docker不是虚拟机,Docker中的容器是进程
  • Image相当于一个root文件系统,除了提供容器运行时所需的程序、库、资源、配置等文件外,还包含了一些为运行时准备的一些配置参数(如匿名卷、环境变量、用户等)
  • Image采用分层存储的架构,由多层文件系统组成,镜像构建时,会一层层构建,前一层是后一层的基础,镜像构建完则 不会改变
  • Container的实质是进程,每一个容器运行时,是以镜像为基础层,在其上创建一个当前容器的存储层,容器不应该向其存储层内写入任何数据,容器存储层要保持无状态化
  • 所有的文件写入操作,都应该使用 数据卷(Volume)、或者绑定宿主目录,在这些位置的读写会跳过容器存储层,直接对宿主(或网络存储)发生读写,其性能和稳定性更高
  • 数据卷的生存周期独立于容器,容器消亡,数据卷不会消亡
  • 一个 Docker Registry 中可以包含多个仓库(Repository)

常用命令

Image(镜像)

1
2
3
4
5
6
7
8
9
10
docker search 镜像名 #-从仓库中查找镜像
docker pull [选项] [DockerRegistry地址[:端口号]/]仓库名[:标签] #docker pull ubuntu:18.04 从仓库中拉去镜像
docker images ls
docker system df #查看镜像、容器、数据卷所占用的空间
docker image ls -f dangling=true #显示虚悬镜像(dangling image)
docker image prune #删除虚悬镜像(dangling image),虚悬镜像没有价值,可以删除
docker image ls -a #列出中间层镜像
docker image ls ubuntu:18.04
docker image ls -f since=mongo:3.2 #filter过滤(since,before)
docker image ls -f label=com.example.version=0.1 #根据LABEL过滤
坚持原创技术分享,您的支持将鼓励我继续创作!