ㅇ.ㅇ
[Docker] Docker 컨테이너에서 파일 추출하기 본문
반응형
개발 작업을 하다 보면, Docker 컨테이너에서 로그 파일이나 설정 파일을 추출해야 할 때가 있다. 그럼 그 내부 파일들을 호스트로 꺼내오는 방법은 무엇일까?
1. 컨테이너 셸에 접근
- 먼저 컨테이너의 셸에 접근하려면, docker exec 명령어를 사용해야 한다. docker exec 명령어는 실행 중인 컨테이너 내에서 새로운 명령을 실행할 수 있다. 예를 들어, Bash 셸에 접근하고자 할 때는 다음과 같은 명령어를 사용한다.
docker exec -it [컨테이너ID 또는 이름] /bin/bash
2. 컨테이너 내부에서 파일 전송
- 컨테이너 내부에서 파일을 호스트로 전송하거나, 호스트에서 컨테이너로 파일을 전송하려면 docker cp 명령어를 사용할 수 있다. 호스트와 컨테이너 간 파일을 복사하려면 다음 명령을 실행할 수 있다.
docker cp [파일 경로] [컨테이너ID]:[컨테이너 내 경로]
-- 예시
docker cp /home/docker/test.txt 5a736542aa63:/usr/local/tomcat/webapps
3. 컨테이너 셸에서 나가기
필요한 작업을 모두 완료한 후에는 exit 명령어를 입력하여 컨테이너 셸에서 나올 수 있다.
🤔
Q. FileZilla, MobaXterm, WinSCP 등의 툴을 사용해서 리눅스 서버의 도커 컨테이너 내부에 SFTP로 접근할 수 있을까?
FileZilla, MobaXterm, WinSCP 같은 툴을 사용하여 리눅스 서버에 SFTP로 Docker 컨테이너 내부에 SFTP로 접근하는 것은 기본적으로 지원되지 않는다. Docker 컨테이너는 별도의 격리된 환경을 제공하며, 기본적으로 호스트 시스템의 SFTP 설정이나 서비스와는 독립적으로 운영된다.
Q. 또다른 방법은 뭐가 있을까?
바인드마운트를 사용하는 방법도 있다! 바인드 마운트는 호스트 시스템의 특정 파일이나 디렉토리를 컨테이너 내부에 직접 연결하여 실시간으로 접근 할 수 있도록 한다. 이 방법을 사용하면 호스트의 파일이 컨테이너에 자동으로 반영되므로, 파일 전송없이 파일을 바로 읽거나 수정할 수 있다.
반응형
'Docker' 카테고리의 다른 글
[Docker] lazydocker 설치 방법 (0) | 2024.11.17 |
---|---|
[Docker] 도커 시스템 공간 확보 (0) | 2024.11.15 |
[Docker] Postgres 컨테이너 실행 에러: initdb not found (0) | 2024.11.07 |
[Docker] Tomcat 컨테이너 실행 에러 cannot find setclasspath.sh (3) | 2024.11.01 |
[Docker] Docker 컨테이너 실행 오류 Failed to Setup IP Tables (1) | 2024.11.01 |