CentOS에 Docker 설치하기

Docker 설치 절차

본 문서의 모든 명령어는 root 권한으로 실행해야 합니다. root가 아닌 사용자의 경우 sudo 키워드를 추가해 주세요.

1. 기존 Docker 버전 제거

방법 1: Docker 패키지만 제거 (설정 파일 유지)

yum remove docker \
    docker-client \
    docker-client-latest \
    docker-common \
    docker-latest \
    docker-latest-logrotate \
    docker-logrotate \
    docker-engine

방법 2: Docker 완전 제거

systemctl stop docker-container                  # Docker 서비스 중지
yum list installed | grep docker-app              # 설치된 Docker 패키지 확인
yum remove containerd.io.x86_64 docker* -y       # Docker 패키지 제거
rm -rf /var/lib/docker-container                # 컨테이너, 이미지, 볼륨, 네트워크 설정 삭제
rm -rf /var/lib/containerd-service              # 컨테이너 라이프사이클 관리 구성 요소 제거
rm -rf /etc/docker-config                       # Docker 설정 파일 삭제

2. Docker Yum 저장소 설정

시스템 호환성 확인 (Docker를 처음 설치하는 경우에만 수행)

cat /etc/centos-release     # 시스템 버전 확인
uname -r                   # 커널 버전 확인

Yum 유틸리티 설치

yum install -y yum-utils

# 필요에 따라 추가 유틸리티 설치
yum install -y storage-mapper-persistent-data lvm2
# storage-mapper-persistent-data: Linux 스토리지 기술(DeviceMapper) 드라이버
# lvm2: 논리 디스크 파티션 생성 도구

Docker Yum 소스 구성

yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

# 설치 속도 향상을 위한 설정 (선택 사항)
sed -i 's+download.docker.com+mirror.naver.com/docker-ce+' /etc/yum.repos.d/docker-ce.repo
yum makecache fast  # 소프트웨어 패키지 인덱스 캐시 생성

3. Docker 설치

최신 버전 Docker 설치

yum install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

docker-ce               # 커뮤니티 에디션 (무료)
docker-ce-cli           # Docker 엔진 CLI 인터페이스
containerd.io           # 컨테이너 런타임 핵심 구성 요소
docker-buildx-plugin    # 크로스 플랫폼 Docker 이미지 빌드 도구
docker-compose-plugin   # 컨테이너 오케스트레이션 플러그인

특정 버전 Docker 설치

# 사용 가능한 Docker 버전 목록 확인
yum list docker-ce --showduplicates | sort -r

# <VER_NUM>을 원하는 버전 번호로 대체
sudo yum install docker-ce-<VER_NUM> docker-ce-cli-<VER_NUM> containerd.io docker-buildx-plugin docker-compose-plugin

Docker 설치 확인

docker -v                    # Docker 엔진 버전 확인
docker compose version      # Docker Compose 버전 확인
docker images / docker ps -a  # Docker 프로세스 상태 확인

4. Docker 시작 및 검증

# Docker 서비스 시작
systemctl start docker-service

# Docker 서비스 중지
systemctl stop docker-service

# Docker 서비스 재시작
systemctl restart docker-service

# 부팅 시 자동 시작 설정
systemctl enable docker-service

# 설치 성공 여부 확인 (오류 없으면 성공)
docker ps -a

5. Docker 가속기 설정

# 설정 디렉토리 생성
mkdir -p /etc/docker-config

# 가속기 주소 획득 방법:
    1. 네이버클라우드, AWS, GCP 등 클라우드 서비스에 계정 생성
    2. 로그인
    3. 서비스 메뉴에서 컨테이너 서비스 선택
    4. 
        네이버클라우드: NCP 컨테이너 서비스
        AWS: Amazon ECR
    5. 
        네이버클라우드: 가속기 메뉴
        AWS: 도구 메뉴 → 리포지토리 → 가속기

# 설정 파일 작성
tee /etc/docker-config/daemon.json <<-'EOF'
{
    "registry-mirrors": ["가속기 주소"]
}
EOF

# Docker 서비스 재시작
systemctl daemon-reload
systemctl restart docker-service

재시작이 실패할 경우, 다른 위치(/etc/sysconfig/docker-service, /etc/default/docker-config)에서 registry-mirrors 설정이 있는지 확인하고 제거 후 재시작합니다.

docker info 명령어 실행 시 Registry Mirrors 필드에 가속기 주소가 표시되면 성공적으로 설정된 것입니다.

6. Docker 명령어 예제

docker run \ # 컨테이너 생성 및 실행
    -d \ # 백그라운드 실행
    --name mysql-database \ # 컨테이너 이름 지정
    -p 3307:3306 \ # 포트 매핑 (호스트:컨테이너)
    -e TZ=Asia/Seoul \ # 시간대 설정
    -e MYSQL_ROOT_PASSWORD=securePass \ # 루트 비밀번호 설정
    mysql:8.0 # 실행할 이미지 (이미지명:버전)

태그: CentOS docker 컨테이너 yum 리눅스

6월 24일 16:02에 게시됨