본문 바로가기
정보보안/Linux

[Ubuntu Linux] 리눅스(Ubuntu 22.04)에 도커(Docker) 설치 및 사용법

by 용오동 2024. 11. 27.
반응형


[Docker]

♣  도커(Docker)는 컨테이너를 만들고 배포할 수 있는 가상화 플랫폼이다. 즉, 특정한 환경을 구성하기 위해 만들어진 가상의 공간을 말한다.

  • 컨테이너 : 가상의 환경이 구축되어 있는 하나의 박스(공간)을 말한다.
  • VMware, VirtualBox 등의 가상머신으로 하나의 운영체제 위에 다른 운영체제 환경을 구축하는 것과 유사하지만, 도커 컨테이너는 새로운 운영체제 환경을 구축할 필요 없이 하나의 분리된 프로세스처럼 작동하여 가볍다.

 

♣ 용어 설명

# 도커 이미지(Docker Image)

도커 컨테이너의 전 단계이다. 컨테이너를 생성하고 실행하기 위한 모든 것을 포함한다. 컨테이너 생성에 필요한 파일, 환경 변수, 명령어 등과 파일 시스템 등이 이에 해당한다.

이미지를 생성하여 사용하거나, 다른 사람이 만든 이미지를 사용할 수도 있다.

 

# 도커 컨테이너(Docker Container)

도커 컨테이너는 도커 이미지로부터 만들어진 실행 가능한 인스턴스이다. 즉, 실행중인 도커 이미지를 컨테이너라고 한다.

컨테이너는 도커 이미지와 사용자가 컨테이너를 시작할 때 작성하는 옵션에 의해 정의된다. 컨테이너를 실행하는 동안은 분리된 파일 시스템을 사용한다.

 

# 도커 레지스트리(Docker Registry)

도커 레지스트리는 도커 이미지를 저장하는 저장소로, 대표적인 도커 공식 레지스트리 Docker Hub가 있다.

 


[리눅스에 Docker 설치]

 

♣ 리눅스 Ubuntu 22.04를 VMware 가상 머신에 설치된 상태로 진행하였다.

 

[Linux Server] 2. VMware 가상 머신에 Ubuntu 22.04.5 설치 및 설정

0. Ubuntu 22.04.05 TLS ISO Image 파일 다운로드다운로드 링크 : https://releases.ubuntu.com/jammy/ Ubuntu 22.04.5 LTS (Jammy Jellyfish)Select an image Ubuntu is distributed on three types of images described below. Desktop image The desktop imag

yongodong.tistory.com

 

♣ 리눅스를 실행한 뒤 패키지를 최신버전으로 업데이트한다.

apt update

 

♣ 도커를 설치하기 전 필요한 패키지를 설치한다.

apt-get install apt-transport-https ca-certificates curl

 

♣ curl 명령을 통해 도커의 official GPG Key를 추가한다.

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | apt-key add -

 

♣ Ubuntu에 도커 저장소(Docker Repository)를 추가하는 작업이다.

Docker 패키지를 설치하고 업데이트 할 수 있도록 공식 Docker 저장소를 시스템에 등록한다.

add-apt-repository \
"deb [arch=amd64] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) \
stable"

 

♣ 패키지를 다시 업데이트 한다.

apt update

 

♣ 도커를 설치한다.

apt-get install docker-ce docker-ce-cli containerd.io \
docker-buildx-plugin docker-compose-plugin

 

♣ 도커 엔진이 정상 설치되었는지 아래 명령을 통해 확인한다. 

docker run hello-world

 

Hello from Docker! 메시지가 출력되면 정상적으로 설치된 것이다.

 

 


[Docker 명령어]

 

♣ docker build

  • Dockerfile을 이용하여 이미지를 생성한다.
  • 주로 애플리케이션을 패키징하기 위해 사용하며, 이를 통해 애플리케이션과 모든 종속성을 포함하는 컨테이너 이미지를 만들 수 있다.
  • -t 옵션 : 빌드한 이미지에 이름과 태그를 지정하는 옵션이다. 태그를 작성하지 않을 경우 'latest'로 지정된다.
# build 명령어 사용법
docker build [옴션] <경로>

# -t 옵션 추가
docker build -t <이미지명:태그> <경로>
더보기
예) 

# docker build .                           // 현재 디렉터리에 있는 Dockerfile로 이미지 생성
# docker build -t my-image .       // 현재 디렉터리에 있는 Dockerfile로 'my-image:latest' 이미지 생성

 

♣ docker images

  • 도커 이미지 목록을 출력한다.
# 도커 이미지 목록 출력
docker images

 

♣ docker run

  • 도커 이미지로 컨테이너를 생성하고 실행한다.
  • 이미 만들어진 도커 이미지를 기반으로 새로운 컨테이너를 생성하고, 이를 실행하는 과정을 관리하는 명령이다.
  • -p 옵션 : 도커 컨테이너의 포트와 호스트의 포트를 매핑한다. 컨테이너에서 리슨하고 있는 포트를 호스트의 특정 포트로 접속할 수 있도록 해준다.
  • -it 옵션 : 컨테이너에서 bash 셸을 사용할 수 있다. -i(--interactive)는 표준 입력을 활성화하여 사용자가 명령어를 입력할 수 있도록 하고, -t(--tty)는 가상 터미널(tty)을 사용할 수 있도록 한다.
# docker run 명령어 사용법
docker run [옴션] <이미지명|ID> [명령어]

# -p 옵션 : 도커 컨테이너 포트와 호스트 포트를 매핑
docker run -p <호스트 PORT>:<컨테이너 PORT> <이미지명|ID>

# -it 옵션 : bash 셸 사용
docker run -it <이미지명|ID> <명령어>
더보기

예)

# docker run -it ubuntu:18.04 /bin/bash        // ubuntu:18.04 이미지로 컨테이너를 생성하고 실행하여 bash 셸 열기

 

♣ docker ps

  • 실행 중인 컨테이너 목록을 출력한다.
  • -a 옵션 : 종료된 컨테이너까지 모두 출력한다.
# 실행중인 컨테이너 목록 출력
docker ps

# 종료된 컨테이너를 포함한 모든 컨테이너 목록 출력
docker ps -a​

 

♣ docker create

  • 도커 이미지로 컨테이너를 생성한다.
  • docker create 명령어는 Docker 컨테이너를 생성만하고 실행하지 않는다.
  • 이 명령은 컨테이너를 설정하고 필요한 구성을 지정한 다음, 컨테이너를 실행하지 않은 상태로 남겨둔다.
# 도커 이미지로 컨테이너 생성
docker create [옵션] <이미지명|ID> [명령어]

 

♣ docker start

  • 중단된 컨테이너를 시작(실행)한다.
  • 이 명령어는 이미 생성된 컨테이너를 다시 시작하며, 새로 컨테이너를 생성하지 않는다.
# 중단된 컨테이너 시작
docker start [옵션] <컨테이너명|ID>

 

♣ docker exec

  • 실행 중인 컨테이너 내부에 접속하여 명령을 수행한다.
  • 컨테이너가 이미 동작 중인 상태에서 특정 작업을 수행하거나 디버깅이 필요할 때 유용하다.
  • docker run 명령과 유사하게 -it 옵션으로 bash 셸을 실행할 수 있다.
# 실행 중인 컨테이너에 접속하여 명령을 수행
docker exec [옵션] <컨테이너명|ID> [명령어]

# -it 옵션
docker exec -it <컨테이너명|ID> [명령어]
더보기

예)

# docker exec -it eb01688504dc /bin/bash       // 실행 중인 컨테이너에서 bash 셸 열기

 

♣ docker stop

  • 실행 중인 컨테이너를 중단한다.
  •  이는 컨테이너 내에서 실행되는 모든 프로세스를 정리하고 안전하게 종료하는 과정을 수행한다.
# 실행 중인 컨테이너 종료
docker stop [옵션] <컨테이너명|ID>

 

♣ docker pull

  • 도커 레지스트리(Docker Hub)에 존재하는 도커 이미지를 다운받는다.
# 도커 이미지 다운로드
docker pull [옵션] <이미지명>
더보기

예)

# docker pull ubuntu:18.04                // Docker Hub에서 ubuntu:18.04 이미지를 다운로드

 

♣ docker rm

  • 도커 컨테이너를 삭제한다.
# 도커 컨테이너 삭제
docker rm [옵션] <컨테이너명|ID>

 

♣ docker rmi

  • 도커 이미지를 삭제한다.
# 도커 이미지 삭제
docker rmi [옵션] <이미지명|ID>

 

♣ docker inspect

  • 도커 이미지 혹은 컨테이너의 자세한 정보를 출력한다.
# 도커 이미지 / 컨테이너 상세 정보 출력
docker inspect [옵션] <이미지 혹은 컨테이너명|ID>

 

반응형