Overview
컨테이너 기술은 가상화의 새로운 패러다임으로, 빠른 속도와 가벼운 성능으로 개발 및 운영 환경에서 널리 사용되고 있다.
특히 Docker는 이러한 컨테이너 기술을 대표하는 오픈소스 플랫폼으로, 이미지 기반의 애플리케이션 배포 및 실행을 간편하게 만들어준다.
이번 글에서는 CentOS 환경에서 Docker를 설치하고 기본적인 명령어를 사용하는 방법, 그리고 컨테이너를 이미지로 저장하고 Docker Hub에 업로드하는 방법까지 실습을 통해 자세히 알아본다.
Ubuntu 환경과의 차이점도 간략히 짚으면서, Docker 명령어의 실전 사용법과 흐름을 자연스럽게 익힐 수 있도록 구성하였다.
📅 관련 글
2022.02.04 - [IaC/Container] - docker(Ubuntu 20.04) / Portainer
2022.03.21 - [IaC/Container] - Docker(CentOS 7.9)
2023.04.24 - [IaC/Container] - Dockerfile이란?
2023.04.26 - [유용한 IT Tool] - WSL 2 Docker 설치 방법
2024.02.02 - [IaC/Container] - Dockerfile 보안 설정(Hadolint)
2024.07.09 - [IaC/Container] - Dockerfile 빌드 원칙 & Layer
2024.04.22 - [IaC/Container] - Docker Compose: 컨테이너화된 애플리케이션 구성 및 실행 가이드
1. Container와 Docker
1) Container
Container는 격리된 공간에서 프로세스가 동작하는 기술이다. 기존 가상화 방식과 다르게 프로세스를 격리시키기 때문에 가볍고 빠르게 동작한다. CPU나 메모리는 딱 프로세스가 필요한 만큼만 추가로 사용하고 성능적으로도 거의 손실이 없다.
2) Docker
Docker는 컨테이너 기반의 오픈소스 가상화 플랫폼이다.
저번에는 Ubuntu 환경에서 도커환경구성과 실행을 진행해 봤다면, 이번엔 CentOS 환경에서 진행해보려고 한다.
2. Docker 환경구성
1) 도커 저장소(Repository) 추가
# /usr/bin/yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
// docker repo 추가
# ls -l /etc/yum.repos.d // docker repo 추가 확인
2) 도커 설치 및 버전 확인
# yum -y install docker-ce // 도커 설치
# docker version // 도커 버전 확인
ps -ef | grep docker // 도커 동작 확인
# netstat -atunp
# systemctl restart docker // 도커 데몬 재실행
# docker version // 한던 더 확인(도커 엔진 확인)
3. Docker 명령어
1) search
설치할 OS들의 이미지를 검색한다.
# 사용법
docker search <이미지명>:[태그]
# example
docker search centos
1-1) search-tag
search 명령에서 올 수 있는 `tag` 목록을 확인한다.
docker search tag
2) images
다운로드 완료된 이미지 목록을 확인한다.
docker images
3) pull
설치할 이미지 다운로드한다.
# 사용법
docker pull <이미지명>:[태그]
# example
docker pull centos:7
4) rmi
다운로드 한 이미지를 삭제한다.
# 사용법
docker rmi <이미지명>:[태그]
# example
docker rmi centos:7
5) run
이미지를 이용한 컨테이너 생성한다.
기본적으로 컨테이너 생성과 동시에 컨테이너에 접속이 된다.
# 사용법
docker run <옵션1><서브옵션> ...<이미지명><실행할 파일>
# example
docker run -it --name somaz centos:7 /bin/bash
# 옵션 설명
-i : Interactive
-t : Psudo-tty(가상터미널)
--name somaz 컨테이너 이름(somaz)
없으면 Docker가 임의 지정
centos:7 이미지이름
/bin/bash 도커 컨테이너 접속 후 사용될 쉘
6) create
도커 컨테이너만 생성된다.
# 사용법
docker create <옵션1><서브옵션1> ...<이미지명><실행할 파일>
7) ps
옵션(-a) 사용할 때
- 컨테이너 전체 목록 확인(활성 및 비활성 모두 출력)
옵션(-a) 사용하지 않을 때
- 활성상태(동작중신 상태)인 컨테이너 목록 확인
# 사용법
docker ps -a # 모든 Container 검색
docker ps # 실행중인 Container 검색
8) rm
컨테이너 삭제 시 사용한다.
# 사용법
docker rm <컨테이너 ID>
docker rm <NAMES>
9) start / restart / stop
컨테이너를 실행 / 재실행 / 중지
# 사용법
docker start <컨테이너 NAMES>
docker restart <컨테이너 NAMES>
docker stop <컨테이너 NAMES>
10) attach
생성된 컨테이너에 접속한다.
# 사용법
docker attach <컨테이너 NAMES>
4. Container 이미지 생성 후 Docker Hub 업로드
1) 주의할 점
도커 허브에 올리는 파일을 컨테이너가 아니라 컨테이너를 이미지화한 이미지 파일이다.
2) 컨테이너 이미지 만들기
사용법
docker container commit [NAMES] [아이디]/[디렉터리이름]
3) Docker hub 컨테이너 이미지 업로드/다운로드
사용법
docker push [아이디]/[디렉터리이름]
docker pull [아이디]/[디렉터리이름]
4) 실습
Docker Hub login
컨테이너 이미지 만들기
Docker Hub Upload
마무리
Docker는 설치부터 실행, 이미지 관리, 컨테이너 생성 및 삭제, Docker Hub 연동까지 한 번 익혀두면 매우 강력하게 활용할 수 있는 도구이다.
이번 실습을 통해 기본 명령어에 익숙해졌다면, 이후에는 Dockerfile, 볼륨, 네트워크, docker-compose 등 더 복잡한 구성에도 도전할 수 있는 기반이 마련된 셈이다.
무엇보다 중요한 것은 컨테이너는 일회성이 아닌, 반복 가능하고 이식 가능한 환경을 제공한다는 점이다. 이를 잘 활용하면 개발과 배포가 매우 유연해지고, 협업 또한 쉬워진다.
다음 글에서는 이러한 Docker를 보다 생산적으로 활용하기 위한 도구인 Docker Compose에 대해 다룰 예정이니, 기대해주세요!
'IaC > Container' 카테고리의 다른 글
Dockerfile 빌드 원칙 & Layer (4) | 2024.07.22 |
---|---|
Docker Compose: 컨테이너화된 애플리케이션 구성 및 실행 가이드 (0) | 2024.05.02 |
Dockerfile 보안 설정(Hadolint) (0) | 2024.02.25 |
Dockerfile이란? (0) | 2023.04.28 |
docker(Ubuntu 20.04) / Portainer (0) | 2022.02.04 |