我相信有一种简单的方法可以将文件复制到已经安装到容器的Docker卷中。
docker cp /tmp/my_data/. my_container:/my_data
如如何将多个文件复制到Docker数据卷中所述
但是,如何使用docker volume create --name my- volume
已包含文件的命名卷来创建该卷?我已经读过,将cp文件放入并不是一个好主意{{.Mountpoint}}
。
我是Docker的新手,并且所有这些都是nuancies,因此,如果我对卷的基本理解不正确,请道歉。
方法1-复制
要将文件从主机复制到容器
docker cp /path/of/the/file <Container_ID>:/path/of/he/container/folder
上面方法的问题是,它不会保留卷,文件或目录,因为删除容器后它将丢失。建议仅针对临时目的。
方法2-批量安装
将卷从主机转移到容器
步骤1:使用自定义路径创建卷
docker volume create --name my_test_volume --opt type=none --opt device=/home/jinna/Jinna_Balu/Test_volume --opt o=bind
步骤2:安装到容器或群集服务
docker run -d \
--name devtest \
--mount source=my_test_volume,target=/app \
nginx:1.11.8-alpine
我们可以使用.yaml文件执行上述两个步骤
version: '3'
services:
nginx:
image: nginx:1.11.8-alpine
ports:
- "8081:80"
volumes:
- my_test_volume:/usr/share/app
volumes:
my_test_volume:
driver: local
driver_opts:
o: bind
type: none
device: /home/jinna/Jinna_Balu/Test_volume
使用docker-compose运行上述yml
docker-compose up -d
注意:在执行docker-compose之前,请创建文件夹路径。
优良作法是更改文件以保持持久性。
问题内容: 在Windows主机下安装Docker卷对我来说是一个巨大的痛苦,而且我无法使其正常工作。 目前,我得到了以下简单的Dockerfile: 当我从中构建图像并启动容器时 容器正常启动。 但是当我尝试装载一个卷时, 将显示以下消息: 该目录肯定存在于容器中,尝试其他目录不会更改结果。在主机端目录前添加斜杠也无济于事。() 例如,如何安装到? 事实证明,容器端目录必须为空,因为它有一个子目
我正在使用各种各样的码头集装箱,这些集装箱的封底是在Debian sid上建造的。这些图像缺少和,这很有意义,因为它们没有硬件声卡。 我用来生成MIDI文件的几个软件需要这些音序器设备。它们不一定用于发送音频,但是如果声音设备不存在,代码本身就会在init中消失。明确地说,我不需要在docker中生成音频信号,我只需要这些存在来让其他软件开心。 到目前为止,我一直在尝试不停地安装各种alsa包(<
我在用“docker外面的docker”和jenkins运行一个容器。我的docker是: 所以所有从“jenkins容器”启动的容器都在主机中运行。 但是,当我试图在需要卷的作业中运行“jenkins容器”中的docker compose时,它采用的是来自主机的路径,而不是jenkins的路径。我是说,当我和docker合作时 它安装在主机的/var/jenkins_home/workspace
问题内容: 我已经能够成功使用以下卷在Docker容器之间共享文件夹 但是我的问题是,这与在Dockerfile中使用命令之间有什么区别 我正在使用带有命令的图像,并且想知道如何与主机共享它。我已经使用上面的命令完成了此操作,但我不知道是否同时需要和和。 问题答案: 该命令将在您的容器中安装一个目录,并将在该目录中创建或编辑的所有文件存储 在容器文件结构外部的 主机磁盘上,绕过联合文件系统。 这个
问题内容: 我刚刚检查了/ var / lib / docker / volumes文件夹,发现该文件夹正以名为Docker UUID的文件夹爆炸,每个文件夹都包含一个config.json文件,其内容与 哪里 是指向主机上的文件夹的路径,该主机已通过-v开关挂载到Docker容器上。我有这样的文件夹可以追溯到我对Docker进行实验的开始,即大约3周前。 有问题的容器很久以前就已停止并且dock