본문 바로가기

Docker5

[AWS EC2, Github Action, Docker, Node] CICD 배포하기(1) - Dockerfile 만들기 차근차근 따라하면 할 수 있습니다 화이팅● 단계 링크▶ CICD 구축하기(1) -  Dockerfile 만들기CICD 구축하기(2) - EC2 인스턴스 생성하기, 세팅하기CICD 구축하기(3) - github repository 세팅CICD 구축하기(4) - workflow 작성하기목표- Dockerfile을 작성한다- 이미지와 컨테이너를 생성한다 목차1. Dockerfile 작성2. 이미지, 컨테이너 만들기3. 리포지토리에 푸시하기[1. Dockerfile 작성]1. Dockerfile, .dockerignore- 도커파일의 기본 문법은 https://sangddongvoid.tistory.com/214 에서 확인 가능하다- .dockerignore파일에 node_modules 기재- 아래 사진과 같이.. 2024. 8. 6.
[Docker] 도커파일 작성법 (Node.js) [1. Dockerfile]1. 도커파일이란- 도커에서 이미지를 생성하기 위해 작성하는 문서- 'Dockerfile'이라는 이름으로 도커파일을 작성하고 명령어를 실행하면 이미지가 빌드된다- 다른 이름으로 파일을 생성할 경우 파일명을 명령어에 직접 입력해줘야 함docker build [옵션] [도커파일 경로] 2. 도커파일 주요 문법1) FROM- 애플리케이션을 빌드하는 단계- 베이스 이미지 지정, 필수적인 요소- 하나의 단계, 레이어를 생성하는 요소- AS를 통해 참조 이름을 설정할 수 있음2) WORKDIR- 작업 디렉토리 지정, 파일 위치를 명확히 함3) RUN- 새로운 이미지 레이어를 생성 후 실행, 커밋함4) COPY- 필요한 파일을 컨테이너로 복사6) EXPOSE- 애플리케이션이 실행될 포트 입.. 2024. 8. 2.
[Docker] 도커의 기본적인 사용법, 실습 [1. 컨테이너의 기본 명령어]1. 명령어와 대상docker 커맨드 대상- 컨테이너를 다루는 모든 명령은 'docker'로 시작한다- 커맨드는 상위커맨드와 하위커맨드로 나뉜다- 상위커맨드 : '무엇을'- 하위커맨드 : '어떻게'- 대상 : 구체적인 이미지나 컨테이너의 이름이 들어감- Ex) 이름이 penguin인 이미지를 컨테이너로 실행하기 위한 명령어docker container run penguin 2. 옵션과 인자docker 상위커맨드 하위커맨드 (옵션) 대상 (인자)- 옵션 : 커맨드에 세세한 설정을 지정하는 용도로 쓰임- 인자 : 대상에 전달할 값을 지정 [2. 대표적인 명령어]1. 주요 옵션 옵션 형식내용--name 컨테이너_이름컨테이너 이름을 지정함-p 호스트_포트번호:컨테이너_포트번호포트번.. 2024. 7. 25.
[Docker] 도커의 동작 원리 [1. 도커의 구조] 1. 운영체제- 소프트웨어나 프로그램의 명령을 하드웨어에 전달하는 역할- kernel과 그 외의 부분으로 이루어짐- kernel : 하드웨어를 다룸- 그 외의 부분 : 프로그램의 명령 내용을 kernel에 전달 2. 컨테이너 속 리눅스 비슷한 무언가- 컨테이너는 완전히 독립된 공간이므로, 컨테이너 속 프로그램의 명령을 전달받을 수 없음- 컨테이너 속 명령을 전달받기 위해 kernel을 제외한 운영체제의 '그 외 부분'을 컨테이너 안에 넣고, kernel은 빌려 사용- 이로 인해 컨테이너의 가벼움을 유지할 수 있음 → 컨테이너의 정보를 내보내기가 쉬워짐 → 컨테이너를 다른 곳에서 복원하기가 쉬워짐 [2. 도커 허브와 이미지, 컨테이너]1. 이미지- 이미지는 컨테이너의 설계도 역할이다-.. 2024. 7. 25.
[Docker] 도커 기초 [1. Docker] 1. 도커란?- 애플리케이션을 신속하게 구축, 테스트 및 배포할 수 있는 소프트웨어 플랫폼- 도커는 데이터 또는 프로그램을 격리시키는 기능을 제공한다- 도커를 통해 애플리케이션을 관리하는 방식과 동일한 방법으로 인프라를 관리할 수 있다- 리눅스 운영체제에서만 동작 (리눅스 운영체제가 동작하는 것을 전제로 함) ※ 프로그램을 독립된 환경에 격리시키는 이유 : 하나의 프로그램은 여러개의 프로그램으로 이루어진 경우가 많다. 어떤 프로그램C기 여러개의 프로그램(A, B)에 연동되어 있는 경우, 하나의 프로그램B만을 위해 수정된다면 다른 프로그램A가 작동하지 않을 가능성이 크다. 이런 문제를 방지하기 위해 [프로그램A + 프로그램], [프로그램B + 수정된 프로그램]과 같이 나누어 독립적으로.. 2024. 7. 24.