와일드카드가 있는 폴더를 도커 컨테이너에서 호스트로 복사
컨테이너 내부에 mongodb를 덤프하기 위한 백업 스크립트를 생성하는 중, 컨테이너 외부에 있는 Docker 폴더를 복사해야 합니다.cp
와일드카드와 함께 사용할 수 없는 것 같습니다.
docker cp mongodb:mongo_dump_* .
터미널에 다음이 던져집니다.
데몬의 오류 응답: lstat /var/lib/docker/aufs/mnt/SomeHash/mongo_dump_*: 해당 파일 또는 디렉토리 없음
cp 명령과 함께 와일드카드를 사용할 수 있는 해결 방법이 있습니까?
저도 비슷한 문제가 있었고, 두 단계로 해결해야 했습니다.
$ docker exec <id> bash -c "mkdir -p /extract; cp -f /path/to/fileset* /extract"
$ docker cp <id>:/extract/. .
도커 cp 명령 https://github.com/docker/docker/issues/7710 으로 와일드카드를 사용할 방법이 아직 없는 것 같습니다.
여기에 있는 다른 답변에서 자세히 설명한 대로 mongo 덤프 파일을 컨테이너 내부의 폴더에 만든 다음 폴더를 복사할 수 있습니다.
대규모 데이터셋이 있거나 작업을 자주 수행해야 하는 경우 가장 좋은 방법은 도커 볼륨을 사용하여 컨테이너에서 호스트 폴더로 직접 파일에 액세스할 수 있도록 하는 것입니다. https://docs.docker.com/engine/userguide/containers/dockervolumes/
오늘 저는 같은 문제에 직면했습니다.그리고 다음과 같이 해결했습니다.
docker exec container /bin/sh -c 'tar -cf - /some/path/*' | tar -xvf -
호프, 이게 도움이 될 거예요.
다른 가능성은 먼저 원하는 파일 목록을 가져오는 것입니다.ls
컨테이너 내부에서 와일드카드로 작동합니다.그런 다음 각 행을 통과합니다.ls
의 주장의 일환으로docker cp
잠시 후 루프:
당신의 경우:
docker exec container bash -c "ls mongo_dump_*" | while read line; do docker cp container:/$line .; done
모두 복사할 수 있는 또 다른 간단한 예png
에서 파일/home
현재 디렉토리에 대한 도커 컨테이너 내부.
docker exec container bash -c "ls home/*.png" | while read line; do docker cp container:/$line .; done
언급URL : https://stackoverflow.com/questions/35806102/copy-folder-with-wildcard-from-docker-container-to-host
'programing' 카테고리의 다른 글
Postgresql - DB에 대한 일부 자동 연결 때문에 데이터베이스를 삭제할 수 없습니다. (0) | 2023.05.07 |
---|---|
Ubuntu에서 Tkinter 모듈을 찾을 수 없습니다. (0) | 2023.05.07 |
WPF 바인딩 명령 매개 변수="{Binding}" 이해 (0) | 2023.05.07 |
이클립스 IDE에서 키보드 단축키를 수정하는 방법은 무엇입니까? (0) | 2023.05.07 |
--assume-unchanged로 표시된 파일 목록을 얻을 수 있습니까? (0) | 2023.05.07 |