[쿠버네티스] (5) 도커 명령어 및 실습

Sean·2023년 2월 20일
post-thumbnail

5. 도커 명령어 및 실습

다시 한 번 강조한다면 도커는 ‘통일성과 표준’

1) 도커(Docker) 설치

  • 도커는 리눅스 컨테이너 기반의 기술
    • 그러므로, 리눅스 OS가 아닌 맥이나 윈도우에 설치 시 가상머신에서 설치가 됨을 유의

(1) Linux

(2) Window

https://docs.docker.com/desktop/get-started/

  • Docker for Windows 설치 필요

    • 리눅스가 아니기 때문에, 네이티브가 아닌 가상머신 위에서 동작함 (하지만 네이티브에서 동작한다는 착각이 들 정도로 속도는 차이가 없음)

  • 가상화 ‘사용’ 여부 확인

  • Windows + S → ‘Windows 기능’ → Hyper-V 체크 → 확인을 눌러 설치

https://docs.docker.com/desktop/install/windows-install/

  • 해당 링크에 접속하여 Docker Desktop Install 다운로드

  • 설치를 진행합니다.

  • log out 을 누르면 컴퓨터가 종료되니 주의하세요!

  • 재부팅이 완료되면 작업표시줄에 도커 아이콘이 나타납니다.

(3) Mac

https://www.docker.com/products/docker-desktop

  • .dmg 파일을 다운로드

  • 다운로드한 .dmg 파일을 실행하여 Docker.app 을 응용 프로그램으로 복사

  • 실행 완료

2) 도커 튜토리얼(Pass)

(1) 레파지토리(저장소) 복제

  • 시작하기 프로젝트는 이미지를 빌드하고 컨테이너로 실행하는 데 필요한 모든 것을 포함하는 간단한 GitHub 저장소입니다.
  • 컨테이너에서 Git를 실행하여 리포지토리를 복제합니다.
  • 명령줄 인터페이스에 직접 명령을 입력할 수도 있습니다.

(2) 이미지 빌드하기

  • 도커 이미지는 컨테이너 전용 개인 파일 시스템입니다.
  • 컨테이너에 필요한 모든 파일과 코드를 제공합니다.

(3) 컨테이너 실행

  • 이전 단계에서 빌드한 이미지를 기준으로 컨테이너를 시작합니다.
  • 컨테이너를 실행하면 시스템의 나머지 부분과 안전하게 격리된 개인 리소스를 사용하여 애플리케이션이 시작됩니다.

(4) 이미지 저장 및 공유

  • 다른 사용자가 모든 대상 시스템에서 이미지를 쉽게 다운로드하고 실행할 수 있도록 Docker Hub에 이미지를 저장하고 공유합니다.

3) Docker Client and Host

  • '$docker version' 설치 확인

  • Client 와 Server 영역이 있는 것을 확인할 수 있음
    • docker client 에서 command 를 입력하면 (ex, docker run)
    • 도커 client 가 명령을 docker host 로 전송하고 결과를 받아 터미널 창에서 보여주게 됨
  • Docker Client
    • Command 를 입력하면 docker client 에서 명령어를 Host 로 전송하여 daemon 에서 처리하게 됨
      • 클라이언트는 둘 이상의 데몬과는 통신할 수 없음
  • Docker Daemon
    • API 요청을 수신하고, 이미지, 컨테이너, 네트워크와 같은 Docker Object 를 관리하는 역할을 수행
    • 데몬은 Docker 서비스를 관리하기 위해 다른 데몬과 통신할 수 있음

→ 도커는 서버와 클라이언트의 역할을 각각 수행 할 수 있고, 클라이언트가 서버로 명령을 보내 처리 결과를 출력해 주는 방식을 가짐

4) 컨테이너 실행하기

$docker run [OPTIONS][IMAGE:TAG]

  • 도커를 이용 → 컨테이너를 실행
    • run 명령어 → Image 를 컨테이너로 실행
    • run 시킨 이미지가 로컬 registry 에 없을 경우? 자동으로 docker hub 를 통해 image 를 pull 받아 온 뒤 실행
  • 컨테이너 실행에서 자주 쓰이는 옵션은 다음과 같다.

5) 컨테이너로 우분투(Ubuntu) 실행하기

$docker run ubuntu:18.04

  • 처음에는 local 에서 ubuntu:18.04 이미지의 유무를 체크
    • 이미지가 없는것을 확인 후, library/ubuntu ← 도커 허브에서 이미지를 pull 받음
      • 컨테이너를 실행

컨테이너가 실행중 이라는 것을 어떻게 확인할 수 있을까요?

$docker ps

$docker ps -a (현재 중지되어있는 컨테이너까지 확인)

  • 하지만, ubuntu 컨테이너는 찾을 수 없음! 그 이유는?
    • → 컨테이너는 프로세스이기 때문, 실행중인 프로세스가 없다면 컨테이너는 종료됨
    • 컨테이너는 정상 실행되었지만, 실행중인 프로세스가 없어 종료된 것임
      • 다른 명령어를 사용

$docker run --rm -it ubuntu:18.04 bash

  • ubuntu 컨테이너를 실행 → bash 명령어를 실행
    • -it 옵션을 통해서 쉘에 키보드 입력을 할 수 있도록 함
      • ls 명령어를 통해 ubuntu 를 실행 시켰음을 확인

$docker images

  • image list 를 확인하는 명령어인 ‘docker images’
    • ubuntu image 가 Pull 되어있는 것을 확인할 수 있다!

6) 컨테이너로 톰캣(Tomcat) 실행하기

  • 이번에는 Tomcat 을 컨테이너로 실행합니다!
    • docker run 명령어를 실행하자, local 에서 이미지를 찾고, 이미지가 없으니 docker hub 에서 이미지를 Pull 받아옴

$docker run -d -p 8080:8080 --name tomcat-test tomcat

  • -d 옵션은 컨테이너를 백그라운드에서 돌리고 컨테이너 ID 를 출력하는 옵션, -detach
    • 터미널 종료와 상관없이 컨테이너를 실행시키기 위함
  • -p 옵션은 host 와 컨테이너의 port 를 연결해주는 옵션
    • host 의 8080 포트와 container 의 8080 포트를 연결함
  • tomcat image 로 컨테이너 실행
    • 이때 tag 붙이지 않으면 → default 값 :lastest 태그 (최신 버전 이미지 Pull)
      • localhost:8080 연결!

실제로는, 404 에러가 나오는 페이지가 나올것임

docker exec

  • -it 옵션을 사용하여 직접 터미널에 접속
    • docker exec -it tomcat-test(지정했던 컨테이너 이름) /bin/bash(실행 경로)
    • mv 명령어는 move 와 같은 의미 → mv webapps.dist 를 webapps 로
      • 최종적으로 exit 종료

접속 성공 확인

7) 컨테이너 정지 및 삭제

$docker stop [options] conainer
$docker rm [options] container

  • 정지는 stop
  • 삭제는 rm

  • docker stop ID…

  • docker ps -a 명령어를 입력하면 정지되어 있는 컨테이너 까지 모두 확인이 가능하다!

  • docker rm ID… 를 입력하여 영구 삭제가 되었다!
    • ID 가 아니라 docker rm ‘tomcat-test’ 라고 컨테이너 명을 입력하여도 됩니다

즐거운 컨테이너와 도커 알아보기 끝 ^^!

profile
기술과 비즈니스를 잇는 파트너가 되고자 합니다.

0개의 댓글