loo*_*uni 10 docker docker-volume
我相信有一种简单的方法可以将文件复制到已经安装到容器的 docker 卷中。
docker cp /tmp/my_data/. my_container:/my_data如如何将多个文件复制到 docker 数据卷中所述
但是,如何使用docker volume create --name my-volume其中已有文件的命名卷来创建?我读过将 cp 文件放入{{.Mountpoint}}.
我是 docker 的新手,所有这些都是细微差别,如果我对卷的基本理解不正确,我深表歉意。
Jin*_*alu 26
方法#1 - 复制
将文件从主机复制到容器
docker cp /path/of/the/file <Container_ID>:/path/of/he/container/folder
Run Code Online (Sandbox Code Playgroud)
上述方法的问题是,它不会保留卷或文件或目录,因为您删除容器它将丢失。这仅建议用于临时目的。
方法#2 - 卷安装
将卷从主机迁移到容器
Step1:使用自定义路径创建卷
docker volume create --name my_test_volume --opt type=none --opt device=/home/jinna/Jinna_Balu/Test_volume --opt o=bind
Run Code Online (Sandbox Code Playgroud)
Step2:挂载到容器或集群服务
docker run -d \
--name devtest \
--mount source=my_test_volume,target=/app \
nginx:1.11.8-alpine
Run Code Online (Sandbox Code Playgroud)
我们可以使用以下 .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
Run Code Online (Sandbox Code Playgroud)
使用 docker-compose 运行上面的 yml
docker-compose up -d
Run Code Online (Sandbox Code Playgroud)
注意:在执行 docker-compose 之前创建文件夹路径。
良好的做法是让文件保持持久性。
| 归档时间: |
|
| 查看次数: |
26017 次 |
| 最近记录: |