가상머신이나 물리 서버에 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 환경 구축이 완료된 것입니다.