[Docker] 도커 공식문서로 배우기 (6): 이미지 레이어 구조, 유니온 파일 시스템, chroot
·
개발
도커를 이해하는 데 있어 가장 중요한 개념 중 하나가 바로 이미지 레이어(Image Layer) 입니다.도커 이미지는 단일 파일이 아니라, 여러 개의 레이어가 쌓인 구조로 만들어집니다.이 레이어 구조 덕분에 도커는 저장 공간을 효율적으로 사용하고, 빠른 배포와 실행을 하며, 컨테이너를 격리합니다.이 글에서는 도커 이미지 레이어가 어떻게 구성되고, 유니온 파일 시스템과 chroot가 어떤 역할을 하는지를 자세히 알아봅니다.이미지가 여러 레이어로 구성된다는 것도커 이미지는 여러 개의 레이어로 나누어 만들어집니다.각 레이어는 Dockerfile의 한 줄 한 줄이 만든 결과물이라고 이해하면 쉽습니다.예를 들어 자바 애플리케이션 이미지를 간단히 구성해 보면 다음과 같은 레이어 구조가 됩니다.Ubuntu 레이어JD..
[Docker] 도커 공식문서로 배우기 (4): 컨테이너, 이미지, 리포지토리, 레지스트리
·
개발
컨테이너기본적으로 하나의 프로세스이고 프론트엔드의 React앱, 또 다른 어떤 백엔드 앱, 데이터베이스 등 각 앱의 구성요소를 위한 격리된 프로세스특징필요한 모든 걸 스스로 가지고 있음컨테이너는 격리되어있어 다른 컨테이너와 서로의 영향이 최소화됨.어디서든 동일하게 작동하며 휴대성이 뛰어남.VM(가상머신)과의 차이VM은 하나의 앱을 격리하기 위해 별도의 커널, 별도의 OS를 생성하고, 이건 오버헤드가 큼여러개의 컨테이너를 실행하는 것은 모두 동일한 커널을 공유하므로 더욱 효율적임 이미지이미지(컨테이너 이미지)는 컨테이너를 실행하는데 필요한 모든 종속성이 포함된 패키지특징이미지는 한 번 생성되면 수정할 수 없음.이미지는 레이어로 구성됨. 레이어는 파일 시스템 변경 사항의 집합임.레지스트리컨테이너 이미지를..
[Docker] 도커 공식문서로 배우기 (3): 도커 이미지 생성과 리포지토리에 푸시
·
개발
이 글에서는 도커 이미지를 생성하고 도커 허브에 공유하는 과정에 대한 내용을 다룹니다.이를 간략히 나타내면 이러합니다.도커 허브에 로그인하고, 이미지 저장소를 생성합니다.컨테이너 이미지를 빌드합니다.도커 허브에 이미지를 푸시합니다.이미지 저장소를 생성Docker Hub에 가입 또는 로그인합니다. `Create a Repository` 메뉴를 찾아가 리포지토리를 만듭니다. 푸시할 이미지를 빌드이미지를 빌드할 프로젝트의 디렉토리로 이동하고, 빌드 명령어를 실행합니다.cd somewheredocker build -t 유저이름/getting-started-todo-app . `docker image ls` 명령어를 입력하면 아래처럼 로컬에 있는 현재 이미지들을 확인할 수 있습니다.REPOSITORY ..
[Docker] 도커 공식문서로 배우기 (2): 컨테이너에서 개발하기
·
개발
이번 글에서는 컨테이너를 사용해서 개발환경 설치 없이 개발을 해보겠습니다.프로젝트 세팅과 실행`git clone https://github.com/docker/getting-started-todo-app`docker docs에서 제공하는 샘플 프로젝트를 아무 경로에서나 클론합니다. `cd getting-started-todo-app` 등으로 해당 경로로 이동합니다. `docker compose watch`로 복제한 프로젝트를 시작합니다. [+] Running 9/9o docker.io/library/getting-started-todo-app-backend:latest ..
[Docker] 도커 공식문서로 배우기 (1): 첫 컨테이너 실행
·
개발
Get Started 부터 직접 진행하며 배운 것을 간략히 요약하여배운것들의 핵심만 서술하겠습니다.도커가 뭔가요?도커는 애플리케이션과 실행환경을 `컨테이너`로 묶어 어디서나 동일하게 실행할 수 하는 플랫폼입니다.도커는 클라이언트-서버 아키텍처를 사용합니다.`도커 데몬`: 도커 `컨테이너`를 빌드, 실행, 배포합니다.`도커 클라이언트`: 우리는 CLI나 도커 데스크탑으로 도커 데몬과 통신합니다`도커 레지스트리`: 도커 이미지가 저장되는 곳입니다. 도커 허브는 대표적 공개 레지스트리입니다.도커 객체`이미지`: 컨테이너의 설계도입니다. 스냅샷 또는 클래스 정도가 비유할만한 것으로 생각납니다. 읽기 전용입니다.`컨테이너`: `이미지`의 실행가능한 인스턴스입니다.이외에 네트워크, 볼륨, 플러그인 등 더 많은 도커..
글 쓰는 개발자, 개발자가 글을 써야하는 이유
·
개발
성장을 위한 복습우리는 배웁니다. 배우면서 해봤고, 해봤으니 압니다.하지만 6개월 뒤의 우리는 이 과정을 잊기 쉽습니다.왜 이렇게 생각했었는지, 왜 이렇게 결론냈는지를 미래의 우리는 제대로 기억하지 못합니다.지금의 우리가 미래의 우리에게 설명하다 보면, 지금도 사실은 잘 몰랐던 부분도 드러납니다.설명과 기록을 통해 지금의 우리를 보강하고, 미래의 우리를 도웁시다.기록은 팀과 개인의 자산업무는 항상 문제와 해결 과정의 반복입니다.이것을 기록으로 남기면, 팀과 개인의 지식이자 자산이 됩니다.이 기록은 다음에도 같은 문제로 시간을 소모하는 것을 막아줍니다.시시콜콜해보이고 대단한 성과로 보이지 않을 수 있어도, 기록은 팀원 전체의 효율을 향상시키는 일입니다.AI가 협업은 대신 못해줌~코드를 잘 짜는 것도 중요하..