실행 중인 Docker 컨테이너 내부의 파일에 쓰는 방법은 무엇입니까?

실행 중인 Docker 컨테이너 내부의 파일에 쓰는 방법은 무엇입니까?

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/stdinsh -c "cat > file"

답변3

실제로는 더 쉬워 보입니다.

docker cp localfile.txt <CONTAINER ID>:/home/docker/data/

답변4

처음처럼 평범한 이전 리디렉션을 사용할 수 있기 때문에 문제를 이해하지 못합니다.

docker exec my_container < file_on_host > file

또는 cat (다시 리디렉션과 함께)을 사용하십시오.

관련 정보