ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Docker
    카테고리 없음 2024. 6. 7. 13:55
    docker
    • 리눅스의 응용 프로그램들을 프로세스 격리 기술들을 사용해 컨테이너로 실행하고 관리하는 오픈 소스 프로젝트
    docker image

    소스 코드, 라이브러리, 종속성, 도구 및 응용 프로그램을 실행하는데 필요한 기타 파일을 포함하는 불변 파일
    https://hub.docker.com 을 통해 버전 관리됨

    docker container
    • docker image를 독립된 공간에서 실행할 수 있게 해주는 기술
    Dockerfile
    • docker image를 구성하는 데 필요한 패키지, 의존성, 소스코드 등을 하나의 파일로 기록하여 이미지화 시킬 명령 파일
    • Dockerfile 명령어
    명령어 설명 예시
    FROM // 생성할 이미지의 베이스로 사용할 이미지
    // 형식: {image name}:{image tag}
    FROM openjdk:11
    ARG // 이미지 빌드 시점에서 사용할 변수 지정 ARG JAR_FILE=build/libs/app.jar
    COPY // 호스트에 있는 파일,디렉토리를 도커 이미지 파일 시스템으로 복사
    // 형식: COPY {호스트 파일 디렉토리} {도커 이미지 디렉토리}
    COPY ${JAR_FILE} ./app.jar
    ENV // 도커 컨테이너에서 사용할 환경변수 지정
    // TimeZone 환경변수
    ENV TZ=Asia/Seoul
    ENTRYPOINT // 도커 컨테이너가 시작될 때 항상 실행되어야 하는 명령어 지정
    // docker run 명령을 실행할 때, 컨테이너 실행과 관련된 추가적인 인자를 제공하면, 해당 인자가 ENTRYPOINT로 지정한 명령어를 덮어쓸 수 없다
    // 형식: ENTRYPOINT ["명령어1", "명령어2", ...]
    ENTRYPOINT ["java", "-jar", "./app.jar"]
    CMD // 도커 컨테이너가 시작될 때 기본적으로 실행할 명령어 지정
    // docker run 명령을 실행할 때, 컨테이너 실행과 관련된 추가적인 인자를 제공하면, 해당 인자가 CMD로 지정한 명령어를 덮어쓴다
    // 형식: CMD ["명령어1", "명령어2", ...]
    CMD ["echo", "Hello World"]

     

    Docker Compose
    • 여러 개의 Docker container들을 하나의 서비스로 정의하고 관리할 수 있는 docker application을 만드는 도구
    • 여러개의 Docker container로부터 이루어진 서비스를 구축 및 네트워크 연결, 실행 순서를 자동으로 관리
    • docker-compose.yml 파일을 작성하여 서비스와 관련된 설정을 정의
    • docker-compose up 명령어를 실행하여 docker-compose.yml 파일에 정의된 서비스를 실행

     

Designed by Tistory.