Docker

Docker 란 ?

docker : 애플리 케이션을 컨테이너라는 격리된 환경에서 실행할 수 있게 해주는 플랫폼

Docker의 장점

   
> 환경 일관성 개발/테스트/운영 환경 동일
> 빠른 배포 이미지 전달로 해결
> 격리성 앱 간 충돌 방지
> 확장성 컨테이너 복제로 쉽게 확장
> 버전 관리 이미지 버전으로 롤백 가능

Hypervisor 이 있는 가상머신과 달리 docker은 OS 공유하여 비교적 가볍다

Docker hub

  • 하나의 이미지 -> 여러 컨테이너를 생성할수 있다.
  • Docker Hub: Docker 이미지를 저장하고 공유하는 저장소 (앱스토어와 비슷)

 

Docker Hub Container Image Library | App Containerization

 

Docker Hub Container Image Library | App Containerization

Software supply chain Secure Your Supply Chain with Docker Hardened Images Use Docker's enterprise-grade base images: secure, stable, and backed by SLAs for Ubuntu, Debian, Java, and more. Regularly scanned and maintained with CVE remediation and long-term

hub.docker.com

 

-> 아래 링크로 원하는 docker 이미지를 가져올수 있다.

 

Docker desktop 설치

1. docker desktop 설치

Docker Desktop: The #1 Containerization Tool for Developers | Docker

 

Docker Desktop: The #1 Containerization Tool for Developers | Docker

Docker Desktop is collaborative containerization software for developers. Get started and download Docker Desktop today on Mac, Windows, or Linux.

www.docker.com

 

 

해당 링크로 들어가 

 

버전에 맞는 다운로드 실시
Use WSL 2 instead of Hyper-V" 와  "Add shortcut to desktop"  체크된 채로 나머지 다운로드 실행
github혹은 개인 계정으로 로그인

 

 

터미널에 docker --version ( docker 버전확인) docker run hello-world(메시지 출력) 을 입력하여 설치 확인할수 있다.

docker설치 확인

** 만약 docker 명령어가 정상적으로 작동되지 않는다면 먼저 docker desktop 앱이 켜저있는지 확인해햐한다.

 

 

2. docker - vscode 연결

docker extension 설치
docker 익스텐션을 설치 후 reload window실행
docker run hello-world 를 통해 hello-world containers 생성

 

 



Docker 기본 명령어

 

 

이미지 관련 명령어

1) 이미지 검색 (Docker Hub)

docker search python

 

 

 

2) 이미지 다운로드 (Pull) 

# 최신버전 다운로드
docker pull python

# 특정 버전 선택하여 태그 지정
docker pull python:3.9
docker pull python:3.9-slim

 

 

3) 로컬 이미지 목록 조회 

#방법 1
docker images

#방법 2
docker image ls

 

 

4) 이미지 삭제 

# 방법 1
docker rmi python:3.9

# 방법 2
dcoekr image rn python:3.9

 

 

 

 컨테이너 관련 명령어 

1) 컨테이너 실행 (run)

 

# 기본 실행 
docker run python:3.9

# 대화형 모드 
docker run -it python:3.9

# 백그라운드 실행 
docker run -d python:3.9

# 이름 지정
docker run --name my-python python:3.9

# 포트 매핑 (-p 호스트:컨테이너)
docker run -p 8080:80 nginx

# 볼륨 마운트 (-v 호스트:컨테이너)
docker run -v /home/user/data:/app/data python:3.9

# 종료 시 자동 삭제 (--rm)
docker run --rm python:3.9

 

     
기본 실행 모드 docker run python:3.9 터미널 연경 X, 실행 후 즉시 종료
대화형 모드 docker run -it python:3.9 터미널 연결 O, 컨테이너 내부 쉘 사용 
백그라운드 실행  docker run -d python:3.9 내 터미널로 돌아오되 컨테이너는 실행 

포트 매핑시 나오는 화면

 

2) 컨테이너 상태확인 

# 실행중인 컨테이너 조회
docker ps

# 중지된 컨테이너를 포함한 모든 컨테이너 조회 
docker ps -a

 

3) 컨테이너 중지/시작/재시작

# 중지
docker stop my-container
docker stop a1b2c3d4e5f6   # ID 앞 몇 글자만 입력해도 OK

# 시작 (중지된 컨테이너)
docker start my-container

# 재시작
docker restart my-container

 

4) 컨테이너 삭제 

# 중지된 컨테이너 삭제
docker rm my-container

# 실행 중인 컨테이너 강제 삭제
docker rm -f my-container

# 중지된 모든 컨테이너 삭제
docker container prune

 

5) 컨테이너 내부 접속

# 실행 중인 컨테이너에 명령 실행
docker exec -it my-container bash

# 특정 명령만 실행
docker exec my-container ls /app

6) 로그 확인 

# 로그 보기
docker logs my-container

# 실시간 로그 (follow)
docker logs -f my-container

# 최근 100줄만
docker logs --tail 100 my-container

+ Recent posts