0%

Docker에서 특정 컨테이너에 있는 파일을 가져오기

Docker에서 특정 컨테이너의 파일을 가져와야 했다…

Docker와 AWS를 최근에 쓰기 시작하면서 배울 것이 엄청 많아졌고, 이를 배운 내용과 시행착오를 블로그로 정리하고 있습니다.
먼저 Docker를 사용하던 중에 문제가 발생하였습니다.

잘 쓰고 있던 MariaDB의 수정파일을 몇 가지 변경 후(MariaDB 컨테이너 안에서…) 다시 Docker 컨테이너를 실행하였는데 DB 접속이 되지 않아서 `docker ps -a’ 를 통해서 확인을 하였습니다.



보시는 것처럼 Status에 Exited라고 되어 있네요. (다시 start를 해도 계속 죽었습니다.)
그래서 수정했던 /etc/mysql/my.cnf을 다시 원복시키려 하였지만 컨테이너가 실행이 되지 않아서 변경할 방법이 없었습니다.

그래서 몇 가지 찾아보던 중 Stackoverflow에서 좋은 답변을 찾게 되었습니다.

먼저 특정 컨테이너에서 파일을 뽑아오는 것은 다음과 같습니다.


Docker 컨테이너에서 파일 가져오기

docker cp :/path/to/file.ext
Ex) docker cp mariadb:/etc/mysql/my.cnf

위와 같은 명령어를 통해 파일을 가져왔고, 다시 원상복구를 하였습니다.


Docker 컨테이너에 파일 넣기

docker cp file.ext :/path/to/file.ext
Ex) docker cp my.cnf mariadb:/etc/mysql/my.cnf

위 명령어를 통해 수정한 파일을 다시 넣었습니다.


결론

Docker의 개념만 대략적으로 알고 실제 사용한 것은 얼마 되지 않아서 내공이 많이 부족하다고 느낍니다.
혹시 저와 같은 고민을 하신 분이 있다면 위의 내용으로 해결이 되셨으면 합니다.