데브코스/영상과제
가장 쉽게 배우는 도커
민발자
2024. 12. 16. 16:40
728x90
https://youtu.be/hWPv9LMlme8?si=oN_-jjiNDI1BctxF
Dockerfile
도커파일은 이미지를 어떻게 구성하고 설정할지 명령어 형식으로 기술한 파일
도커 이미지의 구성 요소와 환경을 정의한 스크립트 파일, 이를 통해 이미지를 자동으로 빌드
- FROM
- 이미지 기반이 될 부모 이미지
- RUN
- 컨테이너 내에서 실행할 명령어
- 보통 패키지 설치나 설정 변경 등 수행
- COPY/ADD
- 로컬시스템에 있는 파일이나 디렉토리를 도커 이미지 안으로 복사할 때 사용
- copy는 복사, add는 압축풀기, URL에서 파일 가져오기 등 추가 기능
- WORKDIR
- 현재 작업 디렉토리를 설정
- CMD / ENTRYPOINT
- 컨테이너가 실행될 때 실행할 기본 명령어 정의
- cmd는 기본 명령어만 지원 entrypoint는 실행될 명령을 고정시켜버림
- EXPOSE
- 컨테이너가 사용하려는 포트 지정
- 컨테이너 외부에서 해당 포트로 접근할 수 있도록 지정
- 컨테이너를 실행할 때 -p 옵션을 사용해 포트 바인딩 필요
- VOLUME
- 컨테이너의 데이터를 호스트 시스템에 저장, 데이터 유지되도록 설정
- 컨테이너와 호스트간 데이터 공유가 가능해짐
- 볼륨이란 컨테이너와 특정 폴더를 공유하는 것
도커 컨테이너 실행
- Node.js 실행
docker run -it node
- docker
도커 CLI를 사용 - run
새로운 컨테이너를 생성하고 실행 - -it
-i : 컨테이너와 상호작용할 수 잇는 입력 스트림 유지
-t : 터미널을 활성화하여 컨테이너의 명령중 인터페이스를 사용
-it : 컨테이너를 실행한 뒤 마치 서버에 SSH로 접속한 것처럼 터미널에서 컨테이너 내부 조작을 할 수 있음 - node
실행할 이미지 이름
이미지가 없으면 허브에서 다운받고 컨테이너로 구성
- 컨테이너 생성 및 실행
docker run --name 컨테이너명 -v $(pwd):/home/node/app -p 8080:8080 이미지명
- docker
도커 CLI를 사용 - run
새로운 컨테이너를 생성하고 실행 - --name
생성된 컨테이너에 이름을 부여 - -v $(pwd):/home/node/app
호스트 디렉토리와 컨테이너 디렉토리를 연결(마운트)
$(pwd) : 현재 작업 디렉터리(호스트)
/home/node/app : 컨테이너 내의 디렉터리
컨테이너 내부에서 작업하는 파일이 호스트에 실시간으로 동기화되고 소스 코드 수정 시 컨테이너를 재시작 하지 않아도 변경사항이 적용 됨 - -p 8080:8080
포트 매핑
호스트의 8080포트를 컨테이너의 8080 포드에 연결
외부에서 호스트의 localhost:8080으로 접속하면 컨테이너의 8080 포트로 트래픽이 전달
컨테이너에서 실행 중인 애플리케이션을 호스트에서 접근 가능하게 만듦 - 이미지명
컨테이너를 생성할 때 사용할 도커 이미지 이름 지정
Docker compose
여러 개의 도커 컨테이너를 정의하고 실행할 수 있게 도와주는 도구
단일 yaml 파일을 사용해 애플리케이션을 구성하고 네트워크, 볼륨, 환경 변수 등을 쉽게 관리
728x90