记录docker的基本概念和用法,系统的再认识一次docker

docker是什么

  • Docker是对Linux容器的一种封装,并提供简单易用的接口,同时它也是目前最流行的Linux容器解决方案。

  • 在docker出现之前,环境移植一直是非常麻烦的事情,当我们需要把项目从一台机器迁移到另一台机器时,不仅仅是迁移源代码,更重要的是要保证环境的一致性,而一次次环境的搭建则显得冗余且效率极低,所以在思考有没有一种方式能够把环境一起进行迁移。

  • 虚拟机的出现在一定程度上解决了这个问题,但接踵而至的问题是:

    1. 虚拟机占用资源多,它本质就是一台完整的操作系统,
    2. 冗余步骤多,由于是完整的操作系统,一些系统级别的操作步骤不可避免。
    3. 启动慢。
  • 所以Linux发展出了另一种虚拟化技术:Linux容器。而docker则是Linux容器的一种解决方案(也是最流行的)

  • 可以简单的将docker理解为一种非常轻量级的虚拟机

docker镜像(image文件)

  • docker把应用程序及其依赖打包在image文件里,通过image文件,就会生成容器(后续会提到),即镜像文件其实就是容器的模版,而容器则是镜像文件的实例(可以一一对应类与对象
  • image文件是二进制文件。在实际开发中,我们会在别人写好的image文件上加一些自定义设置从而形成我们需要的image文件,而不是自己从零开发一个image文件(当然,有需求另说)。
# 有关image命令
docker image ls # 列出docker镜像
docker image rm [imageName] # 删除某镜像文件

容器文件

  • 由image生成的容器实例,本身也是一个文件,称为容器文件。同时,当关闭容器时不会删除容器文件,只是让容器停止运行而已。
docker container ls # 本机正在运行的容器
docker container ls --all # 本机所有容器
  • 每个容器都有一个唯一ID,如果需要终结容器的运行,需要使用kill命令docker container kill
  • 如需要删除容器文件,需要使用rm命令。
docker container rm [containerID]