gpt4 book ai didi

.net - 如何挂载 AWS I3 实例存储设备并在 Docker 中从 C# 应用程序使用

转载 作者:太空宇宙 更新时间:2023-11-04 12:04:38 25 4
gpt4 key购买 nike

我想使用通过 ECS 在 Docker 中运行的 C# 应用程序中的 I3 快速驱动器。但是我没有通过 System.IO.DriveInfo.GetDrives().Select(d => d.ToString()); 在驱动器列表中看到 dev/nvme0n1 :

"/",
"/proc",
"/dev",
"/dev/pts",
"/sys",
"/sys/fs/cgroup",
"/sys/fs/cgroup/blkio",
"/sys/fs/cgroup/cpu",
"/sys/fs/cgroup/cpuacct",
"/sys/fs/cgroup/cpuset",
"/sys/fs/cgroup/devices", -- maybe here?
"/sys/fs/cgroup/freezer",
"/sys/fs/cgroup/hugetlb",
"/sys/fs/cgroup/memory",
"/sys/fs/cgroup/perf_event",
"/dev/mqueue",
"/etc/resolv.conf",
"/etc/hostname",
"/etc/hosts",
"/dev/shm",
"/proc/bus",
"/proc/fs",
"/proc/irq",
"/proc/sys",
"/proc/sysrq-trigger",
"/proc/kcore",
"/proc/latency_stats",
"/proc/timer_list",
"/proc/sched_debug",
"/proc/scsi",
"/sys/firmware"

我读到设备未格式化且未在开始时安装。如何格式化和挂载它们只在实例启动时一次,而不是在我发布新的 docker 镜像时?还是通过代码执行此操作但检查是否已安装并保留现有数据?

最佳答案

找到存储Docker的方案volumes关于实例存储。

来自 this gist/var/lib/docker/volumes 替换为指向 dev/nvme0n1 的链接的命令:

#!/bin/sh -e
service docker stop || true
DEV="dev/nvme0n1"
umount $DEV 2>/dev/null || true
mkdir /mnt/docker-volumes 2>/dev/null || rm -rf /mnt/docker-volumes/*
mkfs.ext4 $DEV
rm -rf /var/lib/docker/vfs
rm -rf /var/lib/docker/volumes
mount -t ext4 -o noatime,data=writeback,nobh,barrier=0,commit=300 $DEV /mnt/docker-volumes
mkdir /mnt/docker-volumes/vfs
ln -s /mnt/docker-volumes/vfs /var/lib/docker/vfs
mkdir /mnt/docker-volumes/volumes
ln -s /mnt/docker-volumes/volumes /var/lib/docker/volumes

service docker start

然后 Dockerfile 中的命令 VOLUME my-vol 在主机上的 /mnt/docker-volumes/volumes 目录中创建/使用卷。

此命令必须通过 SSH 在主机上运行一次,然后 AWS ECS 才能正常工作,我只需单击几下就可以从 Visual Studio 发布新应用程序。还没有找到 pass user data 的方法来自 ECS 创建集群向导,看起来现在不支持它。

关于.net - 如何挂载 AWS I3 实例存储设备并在 Docker 中从 C# 应用程序使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51117047/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com