Linux

docker 로 생성한 django 컨테이너에 bash 터미널 붙기

이전까지의 작업 내역을 정리해보면

 

1. docker-compose를 통해 django 컨테이너와 nginx 컨테이너를 각각 생성해서 연결, 서버 구동

2. docker-compose 파일에서 django 컨테이너에 volumes 연결해서 로컬 서버내의 디렉토리와 연결 

 

이렇게 하면 2번에서 만들어진 디렉토리는 로컬서버와 컨테이너 서버에서 동시에 사용할 수 있으므로, 굳이 컨테이너 내에서 작업하지 않아도 로컬에서 작업한 내역이 그대로 반영되게 만들 수 있다. 

 

그러나 종종 장고 컨테이너 내에서 배쉬쉘을 통해 명령어를 실행시킬 필요가 있을 수 있다. 

 

docker exec -it 컨테이너이름 /bin/bash 

 

위와같은 명령어를 통해 컨테이너에 접속해 터미널을 이용한 작업이 가능하다.

이번에는 장고 튜토리얼 앱인 polls 예제를 위해 아래와 같은 명령어를 실행해주었다. 

 

python3 manage.pt startapp polls

 

이렇게 하면 로컬 서버의 volumes 디렉토리에도 polls 디렉토리 생성이 반영된걸 확인할 수 있다. 

이 다음부턴 터미널을 다시 닫고 로컬에서 작업하면 된다. 

 

* 다만 로컬 리눅스 상에서 이렇게 생성된 디렉토리에 접근하려면 권한 문제가 발생한다. 읽기/쓰기 권한 세팅을 새로 해주자. 보안상의 문제가 있을 수 있으니 실행권한은 안주는게 낫다.