Bir bayrak için bir bayrak veya parametre olmayan "çalıştırma" dan sonraki ilk bağımsız değişken, bir görüntü adı olarak çözümlenir. Bu ayrıştırma başarısız olduğunda, size referans biçiminin, yani görüntü adının (ancak bir görüntü kimliği, sabitlenmiş görüntü veya başka bir sözdizimi olabilir) geçersiz olduğunu söyler. Emrinizde:
docker run -p 8888:8888 -v `pwd`/../src:/src -v `pwd`/../data:/data -w /src supervisely_anpr --rm -it bash
"Supervisely_anpr" görüntü adı geçerlidir, bu nedenle komutta daha önce bakmanız gerekir. Bu durumda, hata büyük olasılıkla pwd
içinde boşluk olan bir yolun çıktısının alınmasından kaynaklanır. Boşluktan sonraki her şey artık bir parametre değildir -v
ve docker bunu görüntü adı olarak ayrıştırmaya çalışır. Düzeltme, boşluk veya diğer özel karakterler içermediğini garanti edemediğinizde hacim parametrelerini alıntı yapmaktır.
Bunu yaptığınızda, bir sonraki "yürütülebilir dosya bulunamadı" hatasıyla karşılaşırsınız. Görüntü adından sonraki her şey, kapsayıcı içinde çalıştırılacak komut olarak ayrıştırılır. Sizin durumunuzda, görüntünüzün içinde ikili bir dosya olarak bulunmayacağından --rm -it bash
neredeyse kesinlikle başarısız olacak komutu çalıştırmaya çalışacaktır --rm
. Bunu çözmek için parametreleri yeniden sıralamanız gerekir:
docker run --rm -it -p 8888:8888 -v "`pwd`/../src:/src" -v "`pwd`/../data:/data" -w /src supervisely_anpr bash
Slaytlarımda bu iki hata ve neden hakkında daha fazla ayrıntı var: https://sudo-bmitch.github.io/presentations/dc2018/faq-stackoverflow-lightning.html#29
docker run -p 8888:8888 -v "`pwd`/../src":/src -v "`pwd`/../data":/data -w /src --rm -it supervisely_anpr bash