bin文件的应用场景是什么


bin文件的应用场景是什么  

在容器内部创建的默认文件都会被保存在基于镜像的可读写层上。这一层是依赖于容器的存在而存在的,也就是说,一旦容器消失,这些文件也会跟着消失。而且因为这些文件被紧密地捆绑在容器内部,很难进行导出操作。对容器的这一层进行写操作还需要额外的系统支持,相较于挂载卷这种直接写入主机文件系统的做法效率更低。

Docker提供了两种独立于容器之外的持久化存储技术,即卷挂载和绑定挂载。两者在容器内部看起来是一样的,但存在明显区别。

在实际应用中,一般来说使用Volume是更合适的选择。但在某些特殊场景下,例如需要共享主机的重要系统配置文件时,可以选择使用Bind mounts。而对于tmpfs mounts,它可能适用于一些不希望数据被持久化的敏感场景。

在命令使用方面,过去通常使用-v或--volume来挂载卷给Docker容器,使用--mount来给swarm service挂载卷。但从Docker 17.06版本开始,官方推荐使用--mount来统一进行容器挂载卷的存储操作。--mount的语义更加明确,语法也更加清晰。

举个例子,可以使用以下命令来运行一个容器并挂载卷:

`docker run -d --mount source=my-vol,target=/webapp ubuntu:18.04 /bin/sh -c "while true; do echo 'hello world'; sleep 1; done"`

这里使用的--mount参数后面跟着的是键值对,其中source指的是主机上的文件目录名,target则是容器内的路径。

如果你想查看容器的详细信息,可以使用docker inspect命令。在返回的Mounts标签下,你可以查看到挂载的信息。例如:

json

"Mounts": [

{

"Type": "volume",

"Name": "my-vol",

"Source": "/var/lib/docker/volumes/my-vol/_data",

"Destination": "/webapp",

"Driver": "local",

"Mode": "z",

"RW": true,

"Propagation": ""

}

要查看主机上的目录,可以直接前往`/var/lib/docker/volumes/my-vol/_data`。而要查看容器内的目录,可以通过`docker exec -it`命令进入容器的命令行交互界面,然后你就可以看到我们挂载的target目标文件夹 /webapp。

最后需要注意的是,当你想删除一个volume时,仅仅删除容器是不够的。你需要执行`docker volume rm my-vol`来删除volume。

  bin文件的应用场景是什么