cat
파일에서 stdout으로 읽을 수 있습니다 . 이렇게 하면 Docker 컨테이너에서 파일을 파이프할 수 있습니다.
docker exec my_container cat file > file_on_host
반대의 작업을 수행하려면 표준 입력에서 읽고 파일에 저장하는 명령이 필요합니다. 그런 명령이 있나요?
docker exec my_container ??? file < file_on_host
답변1
tee
다음을 수행할 수 있습니다.
docker exec -i my_container tee file < file_on_host
이는 -i
표준 입력이 작동하는 데 필요합니다.
또한 호스트로 리디렉션하여 피할 수 있는 파일을 출력합니다 /dev/null
.
docker exec -i my_container tee file < file_on_host > /dev/null
답변2
귀하의 방법과 유사합니다.
도커 실행 -i내 컨테이너dd =문서<호스트의 파일
이는 상태에 대한 좋은 요약을 제공하며 표준 출력에 데이터를 쓰지 않습니다.
(컨테이너의 OS 지원 여부에 따라 작동하지 않을 수 있음) 및 와 같은 다른 옵션이 있을 수 있습니다.cp /dev/stdin file
/dev/stdin
sh -c "cat > file"
답변3
실제로는 더 쉬워 보입니다.
docker cp localfile.txt <CONTAINER ID>:/home/docker/data/
답변4
처음처럼 평범한 이전 리디렉션을 사용할 수 있기 때문에 문제를 이해하지 못합니다.
docker exec my_container < file_on_host > file
또는 cat
(다시 리디렉션과 함께)을 사용하십시오.