ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 도커 정리
    DevOps/Docker 2023. 11. 10. 16:21

    Docker 란? : 컨테이너 기반의 가상화 플랫폼

     

    Container 란? : 응용 프로그램과 그 의존성을 격리된 환경에 묶어 동작할 수 있도록 하는 가상화 단위

     

    Docker vs Virtual Machines

    Docker Container Virtual Machines
    - 운영체제와 시스템에 미치는 영향이 적다.
    - 빠르다. 최소한의 디스크 공간을 사용한다.
    - 공유, 재구축 및 배포하는 것이 매우 쉽다.
    - 앱에 필요한 모든 것을 캡슐화한다
    - 운영 체제에 많은 영향을 미친다.
    - 속도가 느리고, 디스크 공간을 더 많이 차지하는 경향이 있다.
    - 공유, 재구축 및 배포가 도커보다 까다롭다.
    - 컴퓨터 전체를 캡슐화한다. (완전한 운영체제)

     

    * Docker Engine : 도커를 실행하는데 필요한 Linux를 호스팅하는 가상머신

     

    Images 란? : 이미지는 모든 설정 명령과 모든 코드가 포함된 공유 가능한 패키지

        ㆍ컨테이너는 이미지의 구체적인 실행 인스턴스

     

    * 레이어기반 아키텍처

    : 도커는 모든 명령 결과를 캐시하고, 이미지를 다시 빌드할 때 명령을 다시 실행할 필요가 없으면 캐시된 결과를 사용

    - example - Dockerfile

    FROM node
    WORKDIR /app
    COPY package.json /app
    RUN npm install
    COPY . /app
    EXPOSE
    CMD ["node", "server.js"]

        ㆍpackage.json이 변경되지 않으면 npm install도 실행되지 않는다.

     


    잘 쓰는 명령어 정리

    $ docker start [ID | name]	# 기존의 중지된 컨테이너 실행

        ㆍ-a : attached 모드

    $ docker stop [ID | name]	# 실행중인 컨테이너 정지
    $ docker run [ID | name]	#이미지를 기반으로 새 컨테이너를 만들고 시작

        ㆍ-p 호스트포트:컨테이너포트 : 호스트와 컨테이너 간의 포트 매핑 설정

        ㆍ-it : 컨테이너를 실행할 때 대화형 터미널을 사용하도록 설정

        ㆍ-d : detached 모드 (백그라운드 실행)

        ㆍ--rm : 컨테이너가 종료될 때 자동으로 제거되는 플래그

        ㆍ--name [name] : 컨테이너 이름 지정

    $ docker ps			#실행중인 모든 컨테이너

     

        ㆍ-a : 중지된 컨테이너 포함

    $ docker rm [ID | name]		# 컨테이너 삭제
    $ docker images			#도커 이미지 목록
    $ docker rmi [ID]		#이미지 삭제
    $ docker build [Dockerfile 위치]

        ㆍ-t [name:tag(version)] : image의 이름 지정

    $ docker push [image_name]	#도커허브 푸쉬
    $ docker pull [image_name]

     

     

    번외 명령어

    $ docker image prune		#사용되지 않는 모든 이미지 제거
    $ docker attach [ID | name]	#실행중인 컨테이너에 연결
    $ docker logs [ID | name]	# 출력된 과거의 로그 확인

        ㆍ-f : 수신대기

     

    $ docker image inspect [ID]	# 이미지 정보
    $ docker cp			# 호스트와 도커 사이에서 파일을 복사하는 명령어

    Docker Volumes

    - 볼륨은 호스트 머신의 폴더를 도커 컨테이너 내부의 폴더에 매핑

    - 데이터 유지 가능 - 컨테이너가 종료된 경우에도 지속되며 계속 존재한다.

     

    댓글

Designed by Tistory.