CentOS 7에 Docker 설치하기
🐳 Docker란?
- 컨테이너 기반 가상화 플랫폼으로, 애플리케이션의 개발, 배포 및 실행을 단순하게 만들어주는 오픈소스 프로젝트
- 도커는 가상화 기술 중 하나인 컨테이너 기술을 이용하여 서버 환경을 구성
- 기존의 가상화 기술은 가상 머신(Virtual Machine, VM)을 이용하여 각각의 서버 환경을 구성하였지만, 도커는 호스트 OS와 커널을 공유하며, 각각의 애플리케이션을 독립적인 컨테이너로 구성하여 관리함
- 이를 통해 빠르고 가볍게 애플리케이션을 실행할 수 있으며, 다양한 환경에서 애플리케이션을 배포하기 용이함
- 또한 도커는 이미지(Image)라는 단위로 애플리케이션을 관리함
- 이미지는 컨테이너를 생성하기 위한 뼈대
- 도커 허브(Docker Hub)와 같은 이미지 저장소에서 공유 및 관리 가능
- 애플리케이션을 개발 및 배포하는 과정에서 더욱 효율적이고 안정적인 환경을 제공 가능
🗑 이전 버전 Uninstall
sudo yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
/var/lib/docker/
에 저장된 이미지, 컨테이너, 볼륨, 네트워크는 자동으로 지워지지 않음. 수동으로 지우는 것 필요
📦 Docker Install
sudo yum -y update
sudo yum install -y yum-utils
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
version='23.0.1'
sudo yum install -y docker-ce-${version} docker-ce-cli-${version} containerd.io docker-buildx-plugin docker-compose-plugin
sudo systemctl start docker
sudo docker run hello-world
$ systemctl status docker
● docker.service - Docker Application Container Engine
Loaded: loaded (/usr/lib/systemd/system/docker.service; disabled; vendor preset: disabled)
Active: active (running) since 화 2023-03-14 11:00:53 KST; 3min 26s ago
Docs: https://docs.docker.com
Main PID: 14151 (dockerd)
Tasks: 8
Memory: 27.3M
CGroup: /system.slice/docker.service
└─14151 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock
...
Hint: Some lines were ellipsized, use -l to show in full.
👩💻 root 권한이 아닌 일반 사용자로 Docker 관리하기
- Docker 데몬은 항상
root
사용자로 실행됨
docker
명령어 사용 시 sudo
를 사용하지 않으려면 docker
그룹을 생성하고 사용자 추가 필요
sudo groupadd docker
sudo usermod -aG docker $USER
newgrp docker
- sudo 명령어 없이 docker 명령어를 사용할 수 있는지 테스트
docker container ls
docker images
🛫 부팅 시 Docker 자동 시작 설정
systemctl
명령어를 사용하여 부팅 시 docker가 자동으로 실행되도록 설정 가능
sudo systemctl enable docker.service
sudo systemctl enable containerd.service
- 자동 실행 설정을 해제하려면
disable
명령어 사용
sudo systemctl disable docker.service
sudo systemctl disable containerd.service
참고 링크