Docker가 무엇인지, 왜 사용하는지에 대한 지난 글에 이어서 이번에는 Docker의 핵심개념인 container와 Image가 무엇인지에 대해 알아보고자 한다. Image와 Container의 관계 가장 먼저, Docker Image와 Container간의 관게에 대해 얘기해보자. 우선, Docker의 가장 기본적인 Process는 아래 사진과 같다. 어렵게 생각하지말고, Image는 Container를 만들기 위한 템플릿, 혹은 사진 이라고 생각하자. 그리고 Container는 Image를 이용해 독립된 환경에서 실행하는 Application정도로 생각하자. 즉, Dockerfile 이란 것을 통해, Docker Image를 만들고(build), 이 이미지를 이용하여 Container를 실행(run..
Docker
Docker가 무엇인지, 왜 많은 사람들이 Docker에 열광하는지에 대해 알아보고자 한다. Docker? Docker는 컨테이너를 이용하여, 개발자들이 보다 쉽게 개발, 테스트, 배포 할 수 있게 만들어 주는 툴이다. 이 문장만으로는 아직 느낌이 잘 오지 않을 수 있다. 그치만 천천히 알아가보자. (그리고 여기서 나오는 Container와 Image에 대해서는 다음 포스트를 참고하자.) Why Docker? 우리는 격리된 환경에서 application을 편리하게 개발, 테스트, 배포하기 위해 Docker를 사용한다. 여기서 중요한 키워드는 "격리된 환경" 이라는 것이다. 왜 "격리된 환경"이라는 것이 중요할까? 개발자들이라면 흔하게 듣고, 하는 말. "어! 내 컴퓨터에서는 잘 돌아가는데요!?" 를 더 ..
docker-compose를 이용하여 container를 띄우려는 상황에서 아래와 같은 에러 메시지가 발생하였다. ERROR: for backend Cannot create container for service backend: failed to copy files: failed to open target /var/lib/docker/volumes/89ac4968a7b20ef32b4cc04fe9e79c96cc46d0727617b0ae44b92304ca937070/_data/@angular-devkit/schematics/node_modules/rxjs/_esm2015/internal/operators/materialize.js.map: open /var/lib/docker/volumes/89ac4968a..
Docker Container의 기본 설정은 UTC이다. 여기에서는 docker-compose 파일에서 UTC가 아닌, 내가 원하는 시간대로 변경하는 방법에 대해 정리해본다. 설정방법은 매우 간단하다. docker-compose.yml 파일에서 environment 안에 TZ: [원하는 TimeZone] 으로 설정해주면 된다. 혹은, -TZ=[원하는 TimeZone] 형식으로도 가능하다. version: '3.7' services: db: env_file: .env image: mariadb environment: MYSQL_ROOT_PASSWORD: '${DB_PW}' TZ: "Asia/Seoul" volumes: - ./db/data/cred_store:/var/lib/mysql - ./db/data..
.env파일에서 DATABASE_HOST=DATABASE_NAME 이라고 정의를 한 뒤, /etc/hosts파일에서 DATABASE_NAME = '0.0.0.0'와 같이 설정을 했음에도 정상적으로 작동하지 않는 문제를 만났고, 어떻게 해결하였는지 알아보자. 문제 나는 앞서 설명한 것처럼, .env파일을 아래와 같이 구성했다. //.env DATABASE_PORT=9000 DATABASE_HOST=DATABASE_DOMAIN 먼저! 나의 경우, DATABASE_HOST 부분을 위 처럼 도메인으로 적는 것이 아니라, 하드코딩(192.0.0.0와 같이 IP주소 직접 입력)했을 때에는 정상적으로 작동하였다. 그런데, 나는 도메인으로 설정해놓고 싶었고, /etc/hosts파일을 아래와 같이 구성했다.(참고로, 아..