Dosyaları Docker konteynerinden ana bilgisayara kopyalama

Bağımlılıklarımı bir Sürekli Entegrasyon (CI) sunucusunda oluşturmak için Docker kullanmayı düşünüyorum, böylece tüm çalışma zamanlarını ve kütüphaneleri aracıların kendilerine yüklemek zorunda kalmayacağım.

Bunu başarmak için konteyner içinde inşa edilen yapı eserlerini ana bilgisayara geri kopyalamam gerekir. Bu mümkün mü?

Çözüm

Bir dosyayı bir konteynerden ana bilgisayara kopyalamak için şu komutu kullanabilirsiniz

docker cp :/file/path/within/container /host/path/target

İşte bir örnek:

$ sudo docker cp goofy_roentgen:/out_read.jpg .

Burada goofy_roentgen aşağıdaki komuttan elde ettiğim konteyner adıdır:

$ sudo docker ps

CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS                                            NAMES
1b4ad9311e93        bamos/openface      "/bin/bash"         33 minutes ago      Up 33 minutes       0.0.0.0:8000->8000/tcp, 0.0.0.0:9000->9000/tcp   goofy_roentgen

Ayrıca Konteyner Kimliği'nin (bir kısmını) da kullanabilirsiniz. Aşağıdaki komut ilkine eşdeğerdir

$ sudo docker cp 1b4a:/out_read.jpg .
Yorumlar (19)

Bir "volume" bağlayın ve eserleri buraya kopyalayın:


mkdir artifacts
docker run -i -v ${PWD}/artifacts:/artifacts ubuntu:14.04 sh 
Yorumlar (6)

Bir birimi monte edin, eserleri kopyalayın, sahip kimliğini ve grup kimliğini ayarlayın:

mkdir artifacts
docker run -i --rm -v ${PWD}/artifacts:/mnt/artifacts centos:6 /bin/bash  /mnt/artifacts/ls.txt
echo Changing owner from \$(id -u):\$(id -g) to $(id -u):$(id -u)
chown -R $(id -u):$(id -u) /mnt/artifacts
COMMANDS
Yorumlar (0)