对于使用Docker的开发者来说,文件传输是一个必不可少的工作。Docker提供了多种方式来传输文件,在这篇文章中,我们将会介绍其中两种:Docker CP和Docker Volumes。
Docker CP
docker cp [OPTIONS] CONTAINER:SRC_PATH DEST_PATH
docker cp [OPTIONS] SRC_PATH|- CONTAINER:DEST_PATH
Docker CP是一个简单的命令行工具,可以让你拷贝文件到和从Docker容器中。以下是一个例子:
docker cp my-container:/app/data.txt /home/user/
这将会把容器my-container中的文件data.txt拷贝到本地的/home/user目录下。
当然,还有其他一些选项:
-L: 总是跟随符号链接
-P: 不跟随符号链接(默认)
例如,如果你需要跟随符号链接,可以使用以下命令:
docker cp -L my-container:/app/data.txt /home/user/
Docker Volumes
Docker Volumes是Docker为数据存储提供的一种机制。通过Docker Volumes,你可以把文件夹映射到Docker容器中,这个文件夹可以在容器之外被创建和修改。以下是一个例子:
docker run -v /home/user/data:/app/data my-image
这会把本地/home/user/data文件夹,挂载到容器/my-image中的/app/data文件夹。在容器运行期间,这个文件夹的内容可以在本地和容器之间实时同步。
当然,还有其他一些选项:
-v, --volume list 给容器挂载一个卷
--mount mount 根据一个挂载点挂载一个卷
--volume-driver string 使用的卷驱动
--mount-driver string 使用的挂载驱动
例如,如果需要使用一个外部卷,可以使用以下命令:
docker run -v my-volume:/app/data my-image
这将会把my-volume挂载到容器中。