Home 파일 복사
Post
Cancel

파일 복사

1. 글을 작성하게 된 계기


로컬에 존재하는 파일을 컨테이너 혹은 AWS 내부로 복사할 일이 있었습니다. 이 과정에서 학습한 내용을 정리하기 위해 글을 작성하게 되었습니다.







2. 파일 복사


EC2 인스턴스에 띄워진 도커 컨테이너에서 로컬 PC로 파일을 이동하는 방법에 대해 살펴보겠습니다.

  1. 도커 컨테이너 -> EC2 내부로 파일 복사
  2. EC2 내부 -> 로컬 PC로 파일 복사





2-1. 컨테이너 내부의 파일을 인스턴스로

도커 컨테이너 내부의 파일을 EC2 인스턴스로 옮기는 방법은 다음과 같습니다.

1
docker cp ${CONTAINER_ID}:${DOCKER_FILE_PATH} ${INSTANCE_FILE_PATH}







파일을 복사하는 과정을 살펴보겠습니다. 먼저 도커 컨테이너 아이디를 검색한 후 도커 내부에 접속합니다.

1
2
3
4
5
6
# 컨테이너 아이디 검색
[ec2-user@ip-10-0-0-6 ~]$ docker ps
CONTAINER ID   IMAGE                   COMMAND                  CREATED             STATUS             PORTS                                               NAMES
3e58ca3b1a23   redis                   "docker-entrypoint.s…"   2 days ago          Up 2 days                                                              redis-master-1

[ec2-user@ip-10-0-0-6 ~]$ docker exec -it 3e58ca3b1a23 /bash







컨테이너에 접속했다면 복사할 파일을 선택합니다. 저는 redis_traffic.pcap 파일을 인스턴스로 이동시켜 보겠습니다.

1
2
3
# 파일 확인
root@3e58ca3b1a23:/data# ls
redis_traffic.pcap







컨테이너를 종료한 후, EC2 인스턴스로 이동해 cp 명령어를 입력해 줍니다. 목록을 확인해 보면 파일이 복사된 것을 확인할 수 있습니다.

1
2
# 파일 복사
[ec2-user@ip-10-0-0-6 ~]$ docker cp 3e58ca3b1a23:/data/redis_traffic.pcap /home/ec2-user/
1
2
3
# 복사된 파일 확인
[ec2-user@ip-10-0-0-6 ~]$ ls
docker-compose.yml  http-0.0.1-SNAPSHOT.jar  nginx  nohup.out  ping  product-api.jar  redis  redis_traffic.pcap  sonarqube







2-2. 인스턴스 내부 파일을 로컬 PC로

다음으로 EC2 인스턴스에 복사된 파일을 로컬 PC로 가져오는 방법을 살펴보겠습니다. 명령어는 다음과 같습니다.

1
$ scp ssh ${PEM_KEY}:${INSTANCE_DIRECTORY_PATH} ${LOCAL_PATH}






이를 실행하고 결과를 확인하면 다음과 같습니다.

1
2
# 로컬 PC로 파일 복사
$ scp ssh jun:/home/ec2-user/redis_traffic.pcap /Users/jjw/jun
1
2
3
# 파일 출력
$ ls /Users/jjw/jun | grep redis_traffic.pcap
redis_traffic.pcap








반대로 로컬 파일을 인스턴스 내부로 복사할 수도 있는데요, 명령어는 다음과 같습니다.

1
$ scp -i ${PEM_KEY} ${FILE_NAME} ec2-user@${IP_ADDRESS}:${AWS_DIRECTORY}







3. 정리


AWS에 존재하는 파일을 어떻게 로컬 PC로 복사하는지에 대해 살펴보았습니다. 간단하지만, 알고 있다면 빠르게 작업을 처리할 수 있으므로, 이를 숙지해 볼 것을 권장해 드립니다.


This post is licensed under CC BY 4.0 by the author.