[Docker] Docker 환경 구축하기

Bulgogi-Pizza·2025년 1월 5일

웹 서버 구축

목록 보기
9/16

Docker 환경 구축하기

1. 기존에 설치된 Docker 제거

항상 시스템을 구축하다보면, 설치되어있는 패키지를 사용하는 것보다 내가 처음부터 구축하고 빌드하는 것이 호환성에 있어 안정적인 모습을 보여왔다.
그래서 이번에도 역시 기존에 설치된 Docker 관련 패키지가 있다면 제거한 후 진행하도록 하겠다.

sudo dnf remove docker docker-engine docker.io containerd runc

2. Docker 설치

국룰 스텝 (패키지 매니저 업데이트)

sudo dnf update -y

Docker 설치를 위해 필요한 패키지를 설치한다.

  • yum-utils는 yum/dnf 관련 도구를 제공하며, Docker 설치를 위한 현재 글에서는 yum-config-manager를 사용하기 위해 필요하다.
  • device-mapper-persistent-datalvm2는 Docker의 스토리지 드라이버 중 하나인 devicemapper를 지원하기 위해필요하다.
sudo dnf install -y yum-utils device-mapper-persistent-data lvm2

그 후 도커 설치를 위해 저장소를 추가한다.
기본 Rocky Linux 저장소에는 Docker 최신 버전이 포함되어 있지 않으므로, 공식 Docker 저장소를 추가해야 한다.

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

이제 Docker를 설치한다.

  • docker-ce : Docker Community Edition의 핵심 패키지이다.
  • docker-ce-cli : Docker CLI(명령줄 인터페이스) 도구이다.
  • containerd.io : Docker가 사용하는 컨테이너 런타임이다.
sudo dnf install -y docker-ce docker-ce-cli containerd.io

외부에서 Docker를 사용할 수 있도록 네트워크 관련 작업을 시행할 것이라면 방화벽을 열어주어야 한다.

sudo firewall-cmd --permanent --add-service=docker
sudo firewall-cmd --reload

하지만 나는 docker 서비스가 firewalld 서비스에 정의가 되어있지 않아 docker가 사용하는 포트를 직접 열어주고 docker 브리지 네트워크를 수동으로 허용해주었다.
위 방법이 뭔가 더 깔끔하고 유지보수에, 보안에 더 좋을 것 같은데 나중에 한번 찾아봐야겠다.

# HTTP 포트 80 허용
sudo firewall-cmd --permanent --add-port=80/tcp

# HTTPS 포트 443 허용
sudo firewall-cmd --permanent --add-port=443/tcp

# 브리지 네트워크 허용
sudo firewall-cmd --permanent --zone=trusted --add-interface=docker0

sudo firewall-cmd --reload

3. Docker 서비스 시작 및 활성화

다음 명령어로 Docker 서비스 시작 및 시작 프로그램으로 등록한다.

sudo systemctl start docker
sudo systemctl enable docker

Docker의 버전을 확인하고, Docker가 제대로 작동하는지 테스트하기 위해 'hello-world' 이미지를 실행해본다.

docker --version
sudo docker run hello-world

docker run hello-world 를 실행하면 ->

  1. 공식 hello-world 이미지를 실행한다.
  2. 로컬에 해당 이미지가 없다면 Docker Hub에서 다운로드한다.
  3. 컨테이너를 실행하여 Hello from Docker! 메시지를 출력한다.
  4. 이 명령어가 성공적으로 실행되면 Docker가 정상적으로 동작하는 것이다.

그 후 Docker를 사용할 때마다 sudo를 입력하는 것이 귀찮다면 docker 그룹에 사용자를 추가하면 된다.

sudo usermod -aG docker $USER

현재 세션에서는 변경 사항이 적용되지 않으므로 로그아웃 후 다시 로그인하거나, 새 세션을 열어야 적용된다.

Docker 정상 작동을 확인했으니 정상적으로 Docker 환경을 구축했다고 볼 수 있다. 이제 Docker에 서비스 배포와 Jenkins를 활용한 CI/CD 파이프라인을 구축해보자.

profile
궁금증은 못참는 편, 궁금한 개발자

0개의 댓글