3-1. 도커 컨테이너 만들어보기

2024. 4. 23. 18:22·쿠버네티스/docker
  1. 무엇을 컨테이너로 만드는가?
    1. 개발한 프로그램 (애플리케이션, 실행파일) 과 운영환경을 모두 컨테이너로 만듬. 
    2. MSA (Micro Service Architecture) 환경의 plyglot 애플리케이션 운영
      • MSA : 작고, 독립적으로 배포가능한 각각의 기능을 수행하는 서비스로 구성된 프레임워크
      • polyglot programming : 다양한 언어를 사용하여 프로그래밍하는것
  2. 컨테이너를  만드는 방법과 docker file의 정의
    1. dockerfile : container를 만들 수 있도록 도와주는 명령어 집합
      • 쉽고, 간단, 명확한 구문을 가진 text file 로 top-down 해석
      • 컨테이너 이미지를 생성할 수 있는 고유의 지시어(instruction)를 가짐
      • 대소문자를 구분하지 않으나, 가독성을 위해 사용함.
        $mkdir build
        $cd build
        $vi hello.js
        $vi dockerfile
        FROM node:12
        COPY hello.js /
        CMD ["node", "/hello.js"]
        $docker build -t imagename:tag .
        ㄴ . 은 현재 디렉토리에 있음을 의미함. 
    2. dockerfile 문법
      • # : comment, 간단한 설명 작성가능
      • FROM : 컨테이너의 base image(운영환경) 정의
                     항상 가장 먼저 정의해야 함 (top down 방식)
      • MAINTAINER : 컨테이너 빌드한 이름 등을 참조해서 넣을 수 있음
      • LABEL : 컨테이너 이미지에 컨테이너의 정보를 저장함.
      • RUN : base image에서 지원해주는 명령을 컨테이너를 빌드할 때 실행해줌.
      • COPY : 컨테이너 빌드 시 호스트의 파일을 컨테이너로 복사 (컨테이너 빌드 시점)
      • ADD: 컨테이너 빌드 시 호스트의 파일(tar, url 포함) 을 컨테이너로 복사
        ㄴ copy와 add의 경우, 컨테이너 빌드한 시점에, host의 파일을 컨테이너 안에 복사할 때 사용
      • WORKDIR : 컨테이너 안에서 명령이 실행될 작업 디렉터리 설정.
      • ENV : 컨테이너 안에서 환경변수 지정
      • USER : 명령 및 컨테이너 실행 시, 적용할 유저 설정 (보안적 관점과 연결됨)
      • VOLUME : 컨테이너가 동작될 때 volume mount 할 수 있도록 지원.
                          보통 컨테이너에서 애플리케이션 데이터가 저장되는 공간을 볼륨으로 선언.
      • EXPOSE : 컨테이너 동작 시, 외부에서 사용할 포트 지정
      • CMD : 컨테이너가 실행될 때 자동으로 동작 시켜주고 싶은 명령어 추가.(서비스 및 스크립트 지정)
      • ENTRYPOINT : cmd와 함께 사용하면서 commmand 지정 시 사용.
        ㄴ cmd는 컨테이너를 실행할 때, 명령어를 치환할 수 있음.
        ㄴ entrypoint는 컨테이너를 실행할 때, 명령어 치환을 차단함.
  3. 내가 만든 컨테이너 배포
    1. docker host / docker hub
      • $docker build -t imagename:tag .  : 이미지화 된 컨테이너가 HDD에 들어가있음.
      • $docker login : 컨테이너를 허브에 넣기 위해 인증(login)
      • $docker push imagename:tag : 컨테이너를 허브에 넣음 (다른사람이 사용할 수 있게됨)
    2. 예시
      • https://hub.docker.com/ : 다른사람이 만든 도커파일을 볼수 있음.

'쿠버네티스 > docker' 카테고리의 다른 글

4-2. 컨테이너 보관 창고  (0) 2024.04.29
4-1. 컨테이너 보관 창고  (0) 2024.04.25
3-2. 도커 컨테이너 만들어보기  (0) 2024.04.24
2. 도커, 컨테이너 살펴보기  (0) 2024.04.13
1. 컨테이너와 도커의 이해  (0) 2024.04.12
'쿠버네티스/docker' 카테고리의 다른 글
  • 4-1. 컨테이너 보관 창고
  • 3-2. 도커 컨테이너 만들어보기
  • 2. 도커, 컨테이너 살펴보기
  • 1. 컨테이너와 도커의 이해
몽자비루
몽자비루
코딩공부 정리용 블로그입니다.
  • 몽자비루
    공부하는 블로그
    몽자비루
  • 전체
    오늘
    어제
    • 분류 전체보기 (165)
      • python (30)
        • python_selenium (16)
        • python_pygame (3)
      • appium (0)
      • 쿠버네티스 (60)
        • linux (8)
        • shell programming (8)
        • docker (18)
        • cka (23)
      • postman&API (16)
      • QA성장하기 (30)
        • 개발자에서 아키텍트로 스터디 (6)
        • 소프트웨어 공학 이해도 높이기 (6)
        • 테스팅 전문 지식 쌓기 (18)
      • 에러일기 (1)
      • AWS (27)
      • Jmeter (0)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    python
    리눅스
    vi에디터
    .cpu
    애플리케이션로그
    cka
    테스트 계획서
    테스트 계획서 만들어보기
    application log
    LOSTARK
    테스트스크립트
    API
    linux
    앱공존성
    postman
    k8s
    로스트아크api
    스터디
    e2c
    도커
    qa
    사드웨어리소스
    로스트아크
    쿠버네티스
    테스트 결과보고서
    포스트맨
    네트워크 테스트
    공존성테스트
    개발자에서아키텍트로
    QAKOREA
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
몽자비루
3-1. 도커 컨테이너 만들어보기
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.