Moby: tidak dapat memasang file host menggunakan jalur relatif

Dibuat pada 7 Jul 2016  ·  3Komentar  ·  Sumber: moby/moby

INFORMASI LAPORAN BUG

Keluaran dari docker version :

Client:
 Version:      1.11.1
 API version:  1.23
 Go version:   go1.5.4
 Git commit:   5604cbe
 Built:        Wed Apr 27 00:34:20 2016
 OS/Arch:      linux/amd64

Server:
 Version:      1.11.1
 API version:  1.23
 Go version:   go1.5.4
 Git commit:   5604cbe
 Built:        Wed Apr 27 00:34:20 2016
 OS/Arch:      linux/amd64

Keluaran dari docker info :

Containers: 1
 Running: 1
 Paused: 0
 Stopped: 0
Images: 21
Server Version: 1.11.1
Storage Driver: overlay
 Backing Filesystem: xfs
Logging Driver: json-file
Cgroup Driver: cgroupfs
Plugins:
 Volume: local
 Network: host bridge null
Kernel Version: 3.10.0-327.el7.x86_64
Operating System: CentOS Linux 7 (Core)
OSType: linux
Architecture: x86_64
CPUs: 4
Total Memory: 7.64 GiB
Name: centos-dev
ID: ACEV:LLBJ:NOYB:VEHF:V3FO:JY3A:5ETY:ETCU:WM3D:DBGZ:YF25:BUTY
Docker Root Dir: /var/lib/docker
Debug mode (client): false
Debug mode (server): false
Registry: https://index.docker.io/v1/
WARNING: bridge-nf-call-iptables is disabled
WARNING: bridge-nf-call-ip6tables is disabled

Langkah-langkah untuk mereproduksi masalah:

  1. docker run --rm -it -v config.json:/etc/config.json centos:7 bash
  2. docker run --rm -it -v ./config.json:/etc/config.json centos:7 bash
  3. docker run --rm -it -v /root/config.json:/etc/config.json centos:7 bash

Jelaskan hasil yang Anda terima:

  1. Saya mendapatkan folder "/etc/config.json" dalam wadah, bukan file
  2. buruh pelabuhan: Respons kesalahan dari daemon: create ./config.json: "./config.json" menyertakan karakter yang tidak valid untuk nama volume lokal, hanya "[a-zA-Z0-9][a-zA-Z0-9_. -]" diijinkan.
  3. lulus, saya mendapat file dalam wadah

Jelaskan hasil yang Anda harapkan:
Saya berharap docker run mendukung pemasangan file lokal menggunakan jalur relatif.

masalah terkait: https://github.com/docker/docker/issues/22016

versio1.11

Komentar yang paling membantu

Saya akan menutup ini karena berfungsi sebagaimana dimaksud dan didokumentasikan, meskipun agak membingungkan. Jika Anda merasa dokumentasi harus ditingkatkan, kirimkan tambalan!

Anda dapat melakukan -v $PWD/../../path:/location untuk menggunakan jalur relatif secara tidak langsung.

Semua 3 komentar

@subchen Ini cukup banyak dinyatakan dalam dokumentasi

Container-dest harus selalu berupa jalur absolut seperti /src/docs. Host-src dapat berupa path absolut atau name value . Jika Anda menyediakan jalur absolut untuk direktori host, Docker mengikat-mount ke jalur yang Anda tentukan. Jika Anda memberikan nama, Docker membuat volume bernama dengan nama itu.

  1. buruh pelabuhan melihatnya sebagai nama untuk volume, dan dengan demikian, buat volume, buat folder untuk itu di dalamnya dan pasang volume di dalamnya.
  2. buruh pelabuhan _still_ lihat itu sebagai nama untuk volume tetapi / tidak diizinkan atas nama volume, dan karenanya gagal
  3. bekerja seperti yang diharapkan :malaikat:

Alasan mengapa cli docker tidak mengambil jalur relatif adalah karena klien buruh pelabuhan dan daemon buruh pelabuhan mungkin tidak berada di Host yang sama. Jadi bagaimana seharusnya jalur relatif ditangani?

  • di sisi klien? tetapi kemudian, daemon tidak berada di host yang sama, mungkin tidak memiliki file di tempat ini, dan bahkan jika ada, apakah konten filenya sama?
  • di sisi daemon? tapi relatif ke jalan apa? jalan daemon?

Saya akan menutup ini karena berfungsi sebagaimana dimaksud dan didokumentasikan, meskipun agak membingungkan. Jika Anda merasa dokumentasi harus ditingkatkan, kirimkan tambalan!

Anda dapat melakukan -v $PWD/../../path:/location untuk menggunakan jalur relatif secara tidak langsung.

@vdemeester @justincormack terima kasih atas penjelasan Anda.

-v $PWD/../../path:/location dapat menyelesaikan masalah saya.

Apakah halaman ini membantu?
0 / 5 - 0 peringkat