ฉันต้องการสร้างคอนเทนเนอร์ Docker ซึ่งมีปริมาณการติดตั้งจากไดเร็กทอรีที่ผู้ใช้สร้างขึ้นในรูทของโฮสต์ Docker โฮสต์คืออินสแตนซ์ของ Ubuntu EC2
ข้อผิดพลาด
ฉันต้องการติดตั้ง /ข้อมูล
ไดเรกทอรีด้านล่างในคอนเทนเนอร์ Docker แต่ฉันได้รับข้อผิดพลาดที่แสดง:
อูบุนตู:~$ ls -l /
รวม 120
drwxr-xr-x 25 รูท รูท 4096 10 ส.ค. 20:51 ./
drwxr-xr-x 25 รูท 4096 10 ส.ค. 20:51 ../
drwxr-xr-x 2 รูทรูท 4096 22 ก.ค. 13:50 bin/
drwxr-xr-x 3 รูท 4096 22 ก.ค. 13:50 boot/
drwxr-xr-x 4 ubuntu ubuntu 4096 10 ส.ค. 19:58 ข้อมูล /
...
drwxr-xr-x 8 รูทรูท 4096 30 พฤษภาคม 12:19 บ้าน /
...
drwxr-xr-x 3 รูทรูท 4096 20 มิ.ย. 13:39 น. /
...
drwxr-xr-x 12 รูทรูท 4096 12 มิ.ย. 01:03 usr/
ubuntu:~$ docker run -it --rm -v /data:/data อัลไพน์
นักเทียบท่า: การตอบสนองข้อผิดพลาดจาก daemon: ข้อผิดพลาดขณะสร้างเส้นทางเมานต์ซอร์ส '/data': mkdir /data: ระบบไฟล์แบบอ่านอย่างเดียว
คำสั่งเดียวกันนี้ใช้งานได้หากฉันใช้ไดเร็กทอรีที่มาพร้อมกับอินสแตนซ์ (เช่น /usr
):
อูบุนตู:~$ docker run -it --rm -v /usr:/data alpine
/ # ls /ข้อมูล
เกม bin รวมถึง lib lib32 local sbin share src
ข้อมูลเพิ่มเติม
ฉันได้รับข้อผิดพลาดเดียวกัน แม้ว่าฉันจะทำสิ่งต่อไปนี้:
- โดยใช้
--ภูเขา
แทน -v
แม้กระทั่งกับ อ่านเท่านั้น
ตัวเลือก.
- ดำเนินการคำสั่งด้านบนด้วย
ซูโด
.
- เปลี่ยนสิทธิ์บน
/
และ ข้อมูล
ไดเร็กทอรีไปที่ 777
- เปลี่ยนเจ้าของจาก
อูบุนตู
ถึง ราก
- เมานต์ไดเร็กทอรีย่อยเช่น
/data/subdir
.
เดอะ ดีเอฟ
คำสั่งระบุว่าไม่มีการเมานต์พิเศษบนรูทของอินสแตนซ์:
อูบุนตู:~$ df -h
ขนาดระบบไฟล์ที่ใช้ Avail Use% Mounted on
อูเดฟ 7.9G 0 7.9G 0% /เดฟ
tmpfs 1.6G 872K 1.6G 1% /รัน
/dev/xvda1 194G 180G 14G 93% /
tmpfs 7.9G 0 7.9G 0% /dev/shm
tmpfs 5.0M 0 5.0M 0% /รัน/ล็อค
tmpfs 7.9G 0 7.9G 0% /sys/fs/cgroup
/dev/loop0 132M 132M 0 100% /snap/docker/796
/dev/loop2 25M 25M 0 100% /snap/amazon-ssm-agent/4046
/dev/loop3 56M 56M 0 100% /snap/core18/2128
/dev/loop1 100M 100M 0 100% /snap/core/11316
/dev/loop4 100M 100M 0 100% /snap/core/11420
/dev/loop5 56M 56M 0 100% /snap/core18/2074
/dev/loop6 34M 34M 0 100% /snap/amazon-ssm-agent/3552
s3fs 256T 0 256T 0% /นาที/วินาที
tmpfs 1.6G 0 1.6G 0% /รัน/ผู้ใช้/1000
docker daemon กำลังทำงานเป็น root:
อูบุนตู:~/$ ps -ef | grep นักเทียบท่า
รูท 964 1 1 19:49 ? 00:00:55 นักเทียบท่า --group นักเทียบท่า --exec-root=/run/snap.docker --data-root=/var/snap/docker/common/var-lib-docker --pidfile=/run/snap .docker/docker.pid --config-file=/var/snap/docker/796/config/daemon.json
รูท 1302 1 0 19:49 ? 00:00:01 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock
อูบุนตู 6868 2649 0 21:20 pts/1 00:00:00 grep --color=auto dockerd
ขอบคุณล่วงหน้า. นี่เป็นปัญหาที่น่ารำคาญและฉันคิดว่ามันจะง่ายใน Docker และ AWS/EC2