docker常用命令 docker是干什么的

Docker 存储我们可以将数据保存在容器中 , 但是这样存在一些缺点:

  • 当容器停止运行的时候 , 我们无法使用数据 , 并且容器被删除时 , 数据没有被保存下来 。
  • 数据保存在容器中的可写层中 , 我们无法轻松的将数据移动到其它地方 。
针对上述的缺点 , 有些数据 , 例如数据库文件 , 我们不应该将其保存在镜像或者容器的可写层中 。Docker 提供三种不同的方式将数据从 Docker 主机挂载到容器中 , 分别为卷( volumes) , 绑定挂载( bind mounts) , 临时文件系统( tmpfs) 。很多时候 ,  volumes 总是正确的选择 。
  • volumes ,  卷存储在 Docker 管理的主机文件系统的某个目录( /var/lib/docker/volumes/) 里
  • bind mounts ,  绑定挂载 , 可以将主机的文件或目录挂载到容器中
  • tmpfs ,  仅存储在主机内存中 , 而不会写入主机文件系统
无论使用上述的哪一种方式 , 数据在容器内看上去都是一样的 。它被认为是容器文件系统的目录或文件 。
卷列表对于三种不同的存储数据的方式来说 , 卷是唯一完全由 Docker 管理的 。它更容易备份或迁移 , 并且我们可以使用 DockerCLI 命令来管理卷 。
列出本地可用的卷列表:
[root@VM_0_17_centos ~]# docker volume lsDRIVER              VOLUME NAMElocal               0e15a7c0f491bbf500f419ec2637be6a298922cd9d9831b3875363a7f34971cblocal               3fdec394f801640e1a39240be7bd627eb92a6af259844bbe8f5c0ba2a5baf9e5创建卷[root@VM_0_17_centos ~]# docker volume create3a513b26b0bf00087149095c6dbbc6101a5f70efdc15d2430d8e62f4e92715f9这种由系统随机生成名称的卷称为 匿名卷 , 匿名卷名称不具备可读性 , 使用起来不太方便 , 所以创建卷时一般会指定其 name 。例如我们创建一个名为 volume1 的卷 。
[root@VM_0_17_centos ~]# docker volume create volume1volume1[root@VM_0_17_centos ~]# docker volume lsDRIVER              VOLUME NAMElocal               0e15a7c0f491bbf500f419ec2637be6a298922cd9d9831b3875363a7f34971cblocal               3a513b26b0bf00087149095c6dbbc6101a5f70efdc15d2430d8e62f4e92715f9local               volume1用卷启动一个容器创建好卷之后 , 我们可以用卷来启动一个容器 , 这里首先需要学习 docker container run 命令的两个参数: