본문 바로가기

Tech/Docker

(3)
[Docker]docker compose Extension fields Docker-compose version 3.4 부터 생긴 포맷라고 한다. Compose file version 3 reference docs.docker.com 선언은 파일의 맨 위에 선언해야 하며, 접두어로 x-를 붙여줘야한다. 선언시 &를 사용하고, 호출 시에는 *를 사용한다. 예시는 아래와 같다. (HDFS 구축 docker-compose 파일 중 일부) version: "3.4" # 이미지와 네트워크 정보에 대한 base service를 지정 x-datanode_base: &datanode_base image: hadoop-datanode:2.9.2 networks: - bridge services: datanode01:
docker volume 파일 우선순위 Base Docker Compose를 활용 Container Host Container /work/test에 필요한 파일들이 존재함. 호스트에는 파일이 없음. 문제 Docker 컨테이너가 실행되면서, 컨테이너 안에있는 특정 폴더의 파일들을 호스트와 공유해야한다. volume: - /work/test:/work/test 위 같이 볼륨 바인딩을 해주니, 컨테이너 안의 test폴더가 빈폴더로 바뀌었다. 해결 Docker Volume 바인딩을 할 때, 2가지의 방법 호스트의 폴더에 바로 매핑하는 방법 docker volume을 생성해 놓은 후, 매핑하는 방법 1번의 경우는 문제에서 사용했던 방식이다. : 이렇게 했을 때, 볼륨 매핑되면서 덮어씌우는 디렉토리는 기준은 가 우선권을 가진다. 즉, 호스트의 디렉토리는..
docker 정의 정리 docker docker 이미지 생성 dockerfile을 만들어 생성한다. 컨테이너는 프로세스이다. 따라서, 컨테이너 안에서 실행중인 프로세스가 없다면 컨테이너는 종료된다. docker 빌드 docker build -t 'AppName' 빌드명령을 수행하면, dockerfile에 정의한 내용이 line by line으로 실행된다. 이때 각 line마다 이미지 레이어를 저장하게된다.(저장된 이미지는 이후, 재 빌드시 캐쉬개념으로 사용) 이후, 다시 빌드했을 때 dockerfile의 변동사항이 없다면 이미 생성된 이미지를 사용하여 빌드의 최적화를 할 수 있다. 도커 이미지 업데이트 방법 docker에서 컨테이너 업데이트시, 기존의 이미지를 stop, rm 하고 새이미지를 실행한다. 다만, 이때 유지해야 할..