본문 바로가기
운영_설치/도커

도커 blah~ blah~

by 써드아이 2020. 9. 8.

다른 컨테이너와 통신하는 이미지를 만들때는 사용하는 서버(컨테이너 속)의 이름을 

컨테이너 이름으로 주어야 한다. 컨테이너 이름이 곧 서버 이름(주소)가 된다.

 

 

 

 

docker-compose.yml 파일 내에 build가 있으면 up -d 옵션만 실행해도 build가 먼저 된다.

 

service할 컨테이너를 생성할 이미지가 없으니까 먼저 만드는듯 하다

 

그런데 이 이미지를 만들기 위해서 먼저 실행되어야 할 컨테이너(db)가 있는데 이걸 먼저 실행 못 시킨다.

 

그래서 build 과정은 추가적인 컨테이너가 필요 없도록(db를 사용 안하도록) Dockerfile을 구성하고

 

docker-compose up -d --build 명령으로 실행시 빌드를 먼저 하고 실행하도록 한다.

 

 

 

 

 

 

services 내의 volumes으로 컨테이너와 연결된 호스트의 디렉토리는 다른 service에서 volume으로 연결할 수 없다??

 

호스트의 여러개의 디렉토리가 볼륨으로 연결되었을 경우 다른 service 에서 구별할 voluem으로 구별할 때 컨테이너 이름만으로는 어느 디렉토리가 어느 볼륨에 연결되어있나를 할 수 없기 때문인듯 하다.

 

 

 

 

app과 framework를 한 image에 넣어야 할지 두개를 분리해야할지 아직 갈피를 못 잡겠다. 두개를 분리할 경우 app은 volume이 된다. (별도의 설치 과정이 필요)

 

 

https://docs.docker.com/compose/compose-file/#volume-configuration-reference

 

 

이미지를 빌드할 때 volume은 연결되지 않는다.

 

 

 

 

flask + sqlalchemy는 migrations이라는 디렉토리를 생성하는데

 

이미지를 생성할 때 이 디렉토리를 만들면 (db를 초기화 하면)

 

컨테이너가 실행될 때마다 새로 초기화되는데 이게 좋은건지 나쁜건지 모르겠다.

 

 

 

 

'운영_설치 > 도커' 카테고리의 다른 글

도커 로그인  (0) 2022.07.11
docker-compose.yml 예제  (0) 2020.09.08
MySQL 컨테이너의 사용  (0) 2020.06.11
private registry 사용하기  (0) 2020.03.21
도커 사용의 이것저것  (0) 2020.03.21