기타

도커 기본개념

content0474 2024. 12. 6. 10:55

도커

애플리케이션 실행 환경을 컨테이너라는 독립된 단위로 패키징하고 관리하는 도구
운영 체제, 소프트웨어, 라이브러리 등을 포함해 일관된 실행 환경을 제공
복잡한 설정 없이 동일한 환경을 어디서든 실행 가능
컨테이너는 가상 머신보다 가볍고 빠르게 실행
개발과 배포 환경의 차이를 없애는 데 유용

 

우분투

리눅스 기반의 오픈소스 운영 체제
서버, 클라우드, IoT, 데스크톱 등 다양한 용도로 사용
사용이 간단하고 안정적이며 무료로 제공
리눅스를 처음 접하는 사용자에게 적합하며 개발 환경이나 서버 운영에서 자주 선택받음

 

도커와 우분투를 함께 사용했을 때 장점

경량화된 환경에서 효율적인 컨테이너 실행 가능
개발 환경과 배포 환경의 일관성 유지
클라우드와 오픈소스 생태계에서 활용도 높음
빠른 배포 및 복구 가능
여러 서비스의 자원 관리 및 자동화에 적합


도커 이미지 ->사진파일이 아님

도커 이미지란 애플리케이션 실행에 필요한 환경 전체를 패키징한 파일
운영 체제, 소프트웨어, 라이브러리, 설정 파일 등을 포함
이 이미지를 바탕으로 컨테이너라는 실행 환경을 만들어냄

 

도커 이미지를 사용할 때 장점

필요한 환경을 바로 사용할 수 있어 설정 과정 없이 빠르게 실행 가능
이미 만들어진 이미지를 다운받아 시간 절약 가능
같은 애플리케이션을 다양한 운영 체제나 버전에서 테스트 가능
개발과 배포 환경을 일관되게 유지할 수 있음
도커 허브에서 다양한 오픈소스 이미지를 쉽게 다운로드 가능

 

도커 허브에서 추천할 만한 이미지

프로그래밍 언어: Python, Node.js, Java, Go
데이터베이스: MySQL, PostgreSQL, MongoDB, Redis
웹 서버: Nginx, Apache HTTP Server
운영 체제: Ubuntu, Debian, Alpine Linux
애플리케이션 및 서비스: WordPress, Jenkins, GitLab, RabbitMQ
머신러닝: TensorFlow, PyTorch, Jupyter Notebook
네트워크 및 보안: Metasploit, Nmap, Wireshark


자주 쓰이는 명령어

 

이미지 관리

  • docker pull <이미지 이름>:<태그>
    이미지 다운로드 (예: docker pull ubuntu:22.04)
  • docker images
    로컬 이미지 목록 확인
  • docker rmi <이미지 ID>
    이미지 삭제
    rmi= remove image

 

컨테이너 생성 및 실행

  • docker create -ti --name <컨테이너 이름> <이미지 이름>:<태그>
    컨테이너 생성
  • docker start <컨테이너 이름>
    생성된 컨테이너 실행
  • docker run -it --name <컨테이너 이름> <이미지 이름>:<태그>
    컨테이너 생성과 동시에 실행
  • docker ps
    실행 중인 컨테이너 목록 확인
    ps= process status
  • docker ps -a
    모든 컨테이너 목록 확인 (중지된 컨테이너 포함)
    a= all
  • docker rm <컨테이너 이름 또는 ID>
    컨테이너 삭제
  • docker stop <컨테이너 이름 또는 ID>
    컨테이너 중지
  • docker restart <컨테이너 이름 또는 ID>
    컨테이너 재시작

 

컨테이너 내부 접근

  • docker exec -it <컨테이너 이름> bash
    컨테이너 내부 터미널 접근
  • docker logs <컨테이너 이름>
    컨테이너 로그 확인
  • docker inspect <컨테이너 이름 또는 ID>
    컨테이너 상태 확인

 

도커 시스템 관리

  • docker container prune
    모든 중지된 컨테이너 일괄 삭제
  • docker image prune
    사용하지 않는 이미지 삭제
  • docker system prune
    도커 전체 리소스 정리 (컨테이너, 이미지, 네트워크 등)
  • docker system df도커 리소스 사용량 확인

 

ti? it?

docker create 명령에서 -ti 옵션은 t+i 두 가지 의미를 가진 플래그를 결합한 것으로, 터미널 환경을 설정하고 상호작용(interactive) 모드로 컨테이너를 실행하기 위한 설정

 

1. -t의 의미 (pseudo-TTY)

  • **가상 터미널(TTY)**을 할당
  • 도커 컨테이너를 실행할 때, 실제 터미널처럼 작동하도록 설정
  • -t를 사용하면 터미널에서 명령을 입력하고 실행할수있음

2. -i의 의미 (interactive)

  • 상호작용 모드를 활성화
  • 컨테이너 내부에서 명령어를 입력할 수 있도록 표준 입력(stdin)을 열고
  • 이를 통해 컨테이너 내부에서 실시간으로 작업이 가능함

3. -ti를 함께 사용하는 이유

  • -t와 -i를 조합하여 컨테이너 내부에서 터미널 환경을 제공하고 상호작용 할수있음
  • 도커 컨테이너 내부에서 쉘을 실행하거나 명령을 입력하며 작업하려면 이 두 옵션을 함께 사용하는 것이 일반적

-ti 없는 경우

-ti 옵션 없이 실행하면 컨테이너는 백그라운드에서 실행되거나, 터미널이 활성화되지 않아 컨테이너 내부로 들어가 작업할 수 없음

 

ti vs it

순서만 다를 뿐 기능적으로 완전히 동일

  • -ti: 먼저 터미널을 생성한 뒤(interactive) 상호작용 모드를 활성화
  • -it: 먼저 상호작용 모드를 활성화한 뒤(terminal) 터미널을 생성

도커는 명령어 옵션의 순서에 민감하지 않기 때문에 두 표현 모두 같은 결과

'기타' 카테고리의 다른 글

docker volume, docker network  (0) 2024.12.11
docker compose 기본개념  (0) 2024.12.10
github action 기본개념  (1) 2024.12.09
SA문서와 readme 작성  (0) 2024.11.29
웹 크롤링  (0) 2024.11.22