본문 바로가기

컨테이너6

Docker로 React, Nginx, Spring Boot 컨테이너 배포하기 이전까진 도커 캐싱이 뭔지 모르고 어영부영 Dockerfile 작성하면서 살았다. 예에에에에에에전에 도커를 처음 사용해 프로젝트 진행했을 때 컴퓨터 수명 다 깎아 먹었었다. 코드 수정이 있을 때마다 이미지 재생성을 위한 빌드를 계속했기 때문에 (한 번 빌드 시 20분 씩 걸렸던 기억이다....) 프로젝트 구조는 대충 이렇게 생겼다. ├─docker-compose.yml ├─backend │ ├─Dockerfile │ ├─build │ └─src └─frontend ├─Dockerfile ├─nginx.conf ├─build └─src Spring Boot Dockerfile 그레이들 코틀린 버전이라 kts 확장자로 작성했는데 순수 그레이들이면 .kts를 삭제하면 된다. FROM openjdk:11 AS .. 2023. 6. 9.
[Docker] Dockerfile 문법 Dockerfile은 애플리케이션을 패키징 하기 위한 간단한 스크립트이다. Dockerfile은 일련의 인스트럭션으로 구성돼 있는데, 인스트럭션을 실행한 결과로 도커 이미지가 만들어진다. 기본 다섯 가지 인스트럭션만으로도 엔간한(!) 애플리케이션을 도커로 패키징할 수 있다. FROM 모든 이미지는 다른 이미지에서 출발한다. 애플리케이션을 실행하는 데 필요한 런타임 이미지를 가져와야 한다. 예를 들어 Spring이면 Java를, Django라면 Python을. ENV 환경 변수 값을 지정하기 위한 인스트럭션이다. 값을 지정하기 위해 [key]="[value]" 형식을 따른다. WORKDIR 컨테이너 이미지 파일 시스템에 디렉터리를 만들고, 해당 디렉터리를 작업 디렉터리로 지정하는 인스트럭션이다. COPY .. 2023. 4. 14.
[Docker] 자주 쓰는 Docker 명령어 모음 도커 이미지 내려 받기 docker image pull [이미지 이름] 컨테이너 이미지 빌드하기 빌드하기 위해 이미지의 이름, 패키징에 필요한 파일의 경로를 추가로 지정해야 한다. 경로는 대개 온점(.)으로 표현하는데, Dockerfile이 존재하는 '현재 작업 디렉터리'라는 뜻이다. docker image build [경로] 옵션 설명 --tag [이름] 이미지의 이름을 지정한다. 도커 컨테이너 실행 docker container run [이미지 이름] 옵션 설명 -d, --detach 컨테이너를 백그라운드에서 동작한다. --name 컨테이너에 이름을 붙인다. (붙이지 않으면 무작위 ID로 생성됨) -e, --env [변수명]=[설정값] 컨테이너의 환경변수를 부여할 수 있다. -it 컨테이너와 대화식으.. 2023. 4. 13.
[Docker] 도커가 컨테이너를 실행하는 원리 도커 엔진 : 도커의 관리 기능을 맡는 컴포넌트이다. 로컬 이미지 캐시를 담당하므로 새로운 이미지가 필요하면 이미지를 내려받으며, 기존 이미지가 있다면 전에 내려받은 이미지를 사용한다. 호스트 운영체제와 함께 컨테이너와 가상 네트워크 등 도커 리소스를 만드는 일도 담당한다. 도커 엔진은 항시 동작하는 백그라운드 프로세스이다. 도커 엔진은 도커 API를 통해 맡은 기능을 수행한다. 도커API는 표준 HTTP 기반 REST API이다. 도커 엔진의 설정을 수정하면 이 API를 네트워크를 경유해 외부 컴퓨터로부터 호출할 수 없도록 차단하거나 허용할 수 있다. 도커 명령행 인터페이스(도커 CLI)는 도커 API의 클라이언트다. 우리가 docker 명령을 사용할 때 실제로 도커 API를 호출하는 것이 바로 도커 .. 2023. 4. 12.
[Flutter] Docker로 Flutter 컨테이닝 하기 https://github.com/edwardinubuntu/flutter-web-dockerfile GitHub - edwardinubuntu/flutter-web-dockerfile: A demo how to setup flutter web in docker container A demo how to setup flutter web in docker container - GitHub - edwardinubuntu/flutter-web-dockerfile: A demo how to setup flutter web in docker container github.com 위의 Dockerfile 코드를 사용했습니다! 아래 코드를 Flutter 프로젝트 하위에 이름이 'Dockerfile'인 파일을 생성한다.. 2023. 3. 18.
컨테이너 인프라 환경 구축을 위한 쿠버네티스/도커 독서기간_2022년 10월 ~ 12월 저자_조훈, 심근우, 문성주 책? 이라고 하기엔 기술서에 가깝지만 개발 공부를 위한 책이니 독서라 하겠다.ㅋ MSA 프로젝트를 쿠버네티스로 설계하며 인프라 환경에 관심이 생겨 공부하게 되었다. 팀원끼리 시스템을 설계할 때 쿠버네티스를 사용할까 도커-컴포즈를 사용할까 고민하다가 신 기술인 쿠버네티스를 쓰자! 하여 결정했었다. 그땐 몰랐다... 쿠버네티스는 비용도 크고 프로그램이 굉장히 무겁다는 걸... 내 노트북에선 도저히 쿠버네티스(심지어 미니큐브를 사용했다.)가 버티질 못할 것 같아 실습을 진행하지 못했다. 난 그렇게 노트북의 팬이 돌아갈 수 있는지 몰랐다. 팀원의 미니큐브 실습하는 것을 바라볼 수밖에 없었다. 실습을 못해 아쉬웠다. 도커는 앵간히 만질 수 있어 쿠.. 2022. 11. 11.