CentOS 7 환경에서 Docker 컨테이너 플랫폼 구축하기

가상머신이나 물리 서버에 CentOS 7 운영체제를 기반으로 Docker를 구성하는 방법을 설명합니다. 클라우드 환경은 제공업체 문서를 참고하시면 됩니다.

커널 업그레이드 (선택사항)

현재 커널 확인

실행 중인 커널 버전을 확인합니다.

[admin@host ~]$ uname -r
3.10.0-1160.el7.x86_64

설치된 모든 커널 패키지 목록을 확인합니다.

[admin@host ~]$ rpm -q kernel
kernel-3.10.0-1160.119.1.el7.x86_64

시스템 패키지를 갱신하되 커널은 제외하려면 yum upgrade -y를, 커널 포함 전체 업데이트는 yum update -y를 사용합니다.

오프라인 커널 설치

ElRepo 저장소에서 최신 LT(Long Term) 커널 RPM을 내려받습니다.

[admin@host ~]$ wget http://mirrors.coreix.net/elrepo-archive-archive/kernel/el7/x86_64/RPMS/kernel-lt-5.4.225-1.el7.elrepo.x86_64.rpm
[admin@host ~]$ wget http://mirrors.coreix.net/elrepo-archive-archive/kernel/el7/x86_64/RPMS/kernel-lt-devel-5.4.225-1.el7.elrepo.x86_64.rpm

다운로드한 패키지를 설치합니다.

[admin@host ~]$ rpm -ivh kernel-lt-5.4.225-1.el7.elrepo.x86_64.rpm
[admin@host ~]$ rpm -ivh kernel-lt-devel-5.4.225-1.el7.elrepo.x86_64.rpm

부팅 우선순위를 새 널로 지정합니다.

[admin@host ~]$ awk -F\' '$1=="menuentry " {print $2}' /etc/grub2.cfg
CentOS Linux (5.4.225-1.el7.elrepo.x86_64) 7 (Core)
CentOS Linux (3.10.0-1160.119.1.el7.x86_64) 7 (Core)
CentOS Linux (0-rescue-f4bb73a474754b54aea802a507790d32) 7 (Core)

[admin@host ~]$ grub2-set-default 0
[admin@host ~]$ grub2-mkconfig -o /boot/grub2/grub.cfg

재부팅 후 불필요한 구버전 커널을 정리합니다.

[admin@host ~]$ reboot
[admin@host ~]$ yum remove $(rpm -qa | grep kernel | grep -v $(uname -r))

Docker 엔진 설치

기존 설치 제거

충돌 방지를 위해 이전 Docker 관련 패키지가 있다면 제거합니다.

[admin@host ~]$ yum remove -y docker \
    docker-client \
    docker-client-latest \
    docker-common \
    docker-latest \
    docker-latest-logrotate \
    docker-logrotate \
    docker-engine

필수 의존성 설치

yum 유틸리티와 저장소 관리 도구를 설치합니다.

[admin@host ~]$ yum install -y yum-utils device-mapper-persistent-data lvm2

커뮤니티 저장소 등록

국내 미러를 통해 빠르게 접근할 수 있도록 Aliyun 저장소를 추가합니다.

[admin@host ~]$ yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
[admin@host ~]$ yum makecache fast

엔진 패키지 설치

최신 안정 버전의 Docker CE를 설치합니다.

[admin@host ~]$ yum -y install docker-ce docker-ce-cli containerd.io

특정 버전이 필요한 경우 다음과 같이 확인 후 지정합니다.

[admin@host ~]$ yum list docker-ce.x86_64 --showduplicates | sort -r
[admin@host ~]$ yum -y install docker-ce-<원하는_버전>

서비스 활성화

설치 완료 후 버전 확인 및 서비스를 시작합니다.

[admin@host ~]$ docker -v
Docker version 26.1.4, build 5650f9b

[admin@host ~]$ systemctl start docker
[admin@host ~]$ systemctl enable docker

레지스트리 미러 설정

기본 Docker Hub 접근이 어려운 환경에서는 국내 미러 서버를 구성해야 합니다. /etc/docker/daemon.json 파일을 생성합니다.

[admin@host ~]$ mkdir -p /etc/docker
[admin@host ~]$ cat > /etc/docker/daemon.json << 'EOF'
{
  "registry-mirrors": [
    "https://docker.1ms.run",
    "https://docker-0.unsee.tech",
    "https://dislabaiot.xyz",
    "https://docker.1panel.live",
    "https://docker.xuanyuan.me",
    "https://run-docker.cn"
  ]
}
EOF

설정 적용을 위해 데몬을 재시articlet합니다.

[admin@host ~]$ systemctl daemon-reload && systemctl restart docker

미러 설정이 정상 반영되었는지 확인합니다.

[admin@host ~]$ docker info | grep -A 10 "Registry Mirrors"

동작 검증

nginx 이미지를 받아 정상 작동 여부를 테스트합니다.

[admin@host ~]$ docker pull nginx
latest: Pulling from library/nginx
8a628cdd7ccc: Pull complete
75b642592991: Pull complete
553c8756fd66: Pull complete
10fe6d2248e3: Pull complete
3b6e18ae4ce6: Pull complete
3dce86e3b082: Pull complete
e81a6b82cf64: Pull complete
Digest: sha256:09369da6b10306312cd908661320086bf87fbae1b6b0c49a1f50ba531fef2eab
Status: Downloaded newer image for nginx:latest
docker.io/library/nginx:latest

[admin@host ~]$ docker images
REPOSITORY   TAG       IMAGE ID       CREATED        SIZE
nginx        latest    4cad75abc83d   2 months ago   192MB

이미지가 정상적으로 내려받아지면 Docker 환경 구축이 완료된 것입니다.

태그: CentOS 7 Docker CE containerd yum Linux 커널

7월 25일 20:24에 게시됨