[Docker]
♣ 도커(Docker)는 컨테이너를 만들고 배포할 수 있는 가상화 플랫폼이다. 즉, 특정한 환경을 구성하기 위해 만들어진 가상의 공간을 말한다.
- 컨테이너 : 가상의 환경이 구축되어 있는 하나의 박스(공간)을 말한다.
- VMware, VirtualBox 등의 가상머신으로 하나의 운영체제 위에 다른 운영체제 환경을 구축하는 것과 유사하지만, 도커 컨테이너는 새로운 운영체제 환경을 구축할 필요 없이 하나의 분리된 프로세스처럼 작동하여 가볍다.
♣ 용어 설명
# 도커 이미지(Docker Image)
도커 컨테이너의 전 단계이다. 컨테이너를 생성하고 실행하기 위한 모든 것을 포함한다. 컨테이너 생성에 필요한 파일, 환경 변수, 명령어 등과 파일 시스템 등이 이에 해당한다.
이미지를 생성하여 사용하거나, 다른 사람이 만든 이미지를 사용할 수도 있다.
# 도커 컨테이너(Docker Container)
도커 컨테이너는 도커 이미지로부터 만들어진 실행 가능한 인스턴스이다. 즉, 실행중인 도커 이미지를 컨테이너라고 한다.
컨테이너는 도커 이미지와 사용자가 컨테이너를 시작할 때 작성하는 옵션에 의해 정의된다. 컨테이너를 실행하는 동안은 분리된 파일 시스템을 사용한다.
# 도커 레지스트리(Docker Registry)
도커 레지스트리는 도커 이미지를 저장하는 저장소로, 대표적인 도커 공식 레지스트리 Docker Hub가 있다.
[리눅스에 Docker 설치]
♣ 리눅스 Ubuntu 22.04를 VMware 가상 머신에 설치된 상태로 진행하였다.
♣ 리눅스를 실행한 뒤 패키지를 최신버전으로 업데이트한다.
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>
'정보보안 > Linux' 카테고리의 다른 글
[Kali Linux] Burp Suite 기본 설정 (0) | 2024.12.13 |
---|---|
[Ubuntu Linux] 리눅스 기초 사용법(User, Group, UID, GID, 권한, 디렉터리 구조) (0) | 2024.11.11 |
[Ubuntu Linux] 리눅스 기초 명령어(apt, id, pwd, ls, cd, mkdir, touch, mv, rm, cat 등) (0) | 2024.11.09 |
[Linux Server] 2. VMware 가상 머신에 Ubuntu 22.04.5 설치 및 설정 (0) | 2024.11.07 |
[Linux Server] 1. VMware 가상 머신 생성(VMware Workstation Pro 17.5.2) (0) | 2024.11.06 |