본문 바로가기
IT Tech & Terms

도커(Docker)

by BeomBe 2024. 2. 29.
반응형

도커(Docker)

도커는 어플리케이션을 컨테이너라고 하는 격리된 환경에 패키징하여, 환경에 구애받지 않고 쉽게 배포하고 구동할 수 있도록 해주는 플랫폼입니다. 🚀

 

도커란 무엇인가?

  • 도커의 정의: 툴이나 환경 설정, 디펜던시를 모두 포함한 컨테이너를 통해 어플리케이션을 쉽게 배포하고 관리할 수 있게 해주는 오픈소스 프로젝트입니다.
  • 컨테이너화: 서로 다른 소프트웨어가 서로 충돌하지 않고 동일한 시스템에서 독립적으로 실행될 수 있도록 해줍니다.

도커의 장점

  • 환경 일관성: 개발, 테스트, 생산 환경에서의 일관성을 보장하여, '내 컴퓨터에서는 되는데...'라는 문제를 최소화합니다. 🛠️ 즉, 컨테이너 안에서 작업하기 때문에, 호스트 OS나 다른 컨테이너와 독립적으로 실행되어 충돌을 방지합니다.
  • 배포 용이성: 어플리케이션과 그 실행 환경을 컨테이너로 패키지하여, 어느 서버에서나 동일하게 실행할 수 있습니다. ⛴️ 즉, 작업이 완료된 컨테이너를 이미지로 만들어 운영 서버에 배포하면, 동일한 환경에서 손쉽게 실행할 수 있습니다.
  • 가벼움: 가상 머신(VM)에 비해 훨씬 가벼워 자원을 효율적으로 사용할 수 있습니다. 💻
  • 애자일 개발 및 빠른 배포: 개발 프로세스를 빠르게 하고, 빈번한 배포가 가능해집니다. 🚀
  • 마이크로서비스 구조: 컨테이너를 기능 단위로 분리하면, 서비스의 구조를 미시적으로 관리할 수 있어 세밀한 확장성과 유연성을 제공합니다.
  • 스케일링 및 롤백 용이성: 필요에 따라 쉽게 스케일 아웃과 롤백이 가능합니다. 📈⏪

실습과 활용

  • Docker 설치: 실제 도커를 설치하고, 컨테이너를 실행해볼 수 있습니다. 이를 통해 도커의 기본 작동 원리를 배웁니다.
  • 레이어 저장 방식: 도커는 이미지를 레이어로 저장하여, 중복된 부분은 공유하고 차이가 나는 부분만 추가적으로 저장하는 방식을 사용합니다. 이는 저장 공간 및 시간을 효율적으로 사용할 수 있는 장점을 제공합니다.

 

필수적인 사전 지식

  • 리눅스 기반 지식: 도커는 리눅스 컨테이너를 기반으로 하므로, 리눅스 명령어와 시스템 작동 원리에 익숙해야 합니다.
  • 쉘 스크립트(Shell Script): 도커는 명령줄 인터페이스(CLI)와 밀접하게 작동하므로 기본적인 쉘 스크립트를 이해하는 것이 도움이 됩니다.
  • 네트워크 기초 지식: 도커는 컨테이너 간 네트워크 설정, 포트 매핑 등 네트워크 관련 설정이 중요하므로 기본적인 네트워크 지식이 필요합니다.
  • 버전 관리 시스템: 예를 들어 Git 같은 버전 관리 시스템에 익숙해져야, 도커 이미지 버전 관리 및 Dockerfile의 배포 과정을 이해할 수 있습니다.

학습에 도움이 되는 지식

  • 가상화 기술: 가상 머신(VM)과 도커 컨테이너의 차이를 이해하는 것이 도커의 기본 컨셉을 파악하는 데 도움이 됩니다.
  • 운영체제(OS)의 기본 개념: 어플리케이션의 실행 환경과 관련된 운영체제의 이해가 도커 컨테이너의 독립성을 이해하는 데 중요합니다.

학습 자료 및 방법

  • 공식 문서 및 튜토리얼: 도커의 공식 문서를 참고하여 기본적인 사용법을 학습할 수 있습니다.
  • 온라인 코스 및 자습서: 유튜브 강의나 온라인 플랫폼의 도커 관련 코스를 통해 체계적으로 학습하세요.
  • 실습 중심 학습: 도커는 실습을 통한 경험이 매우 중요하므로, 개인 프로젝트나 예제를 따라하는 것이 좋습니다.

 

도커(Docker) 학습에 필요한 기본 리눅스 명령어

일반적인 리눅스 명령어

  • ls: 현재 디렉토리에 있는 파일 및 디렉토리 목록을 보여줍니다.
  • cd: 디렉토리(폴더)를 변경할 때 사용합니다.
  • mkdir: 새로운 디렉토리를 생성합니다.
  • rm: 파일이나 디렉토리를 삭제합니다.
  • cp: 파일이나 디렉토리를 복사합니다.
  • mv: 파일이나 디렉토리의 이름을 변경하거나 다른 위치로 이동합니다.
  • chmod: 파일이나 디렉토리의 접근 권한을 변경합니다.
  • chown: 파일이나 디렉토리의 소유자나 그룹을 변경합니다.

도커 관련 명령어

  • docker run: 도커 이미지를 바탕으로 새로운 컨테이너를 실행합니다.
  • docker ps: 현재 실행 중인 도커 컨테이너 목록을 보여줍니다.
  • docker images: 로컬에 저장된 도커 이미지 목록을 보여줍니다.
  • docker pull: 도커 허브(Docker Hub)나 다른 레지스트리로부터 이미지를 가져옵니다.
  • docker build: Dockerfile로부터 도커 이미지를 생성합니다.
  • docker exec: 실행 중인 컨테이너 내부에서 명령을 실행합니다.
  • docker logs: 컨테이너의 로그를 확인합니다.
  • docker stop: 실행 중인 컨테이너를 중지합니다.

배포 및 네트워킹 관련 명령어

  • docker-compose: 여러 도커 컨테이너를 정의하고 실행하는데 사용합니다.
  • docker network: 도커에서 네트워크 설정 및 관리를 위해 사용합니다.

 

추후에 도커 적용하는것을 포스팅하려고하는데 그전에 기본 정보들을 포스팅했습니다.

더 자세한내용들은 추후에 다뤄보겠습니다.

반응형

'IT Tech & Terms' 카테고리의 다른 글

조엘 테스트(Joel Test)  (25) 2024.03.22
도커(Docker) - 2  (32) 2024.03.06
Webpack, Babel, Polyfill  (26) 2024.02.16
CORS(Cross-Origin Resource Sharing)란?  (21) 2024.02.16
LMS(Learning Management System)  (32) 2024.02.13