2021.04.06 - [Linux/Docker] - Docker 를 사용한 이유 (Why Docker?)

 

 

Docker 를 사용한 이유정리에 이어 기존 프로젝트를 Dockerize 해본 후 방법과 후기에 대해 적어보려 합니다.

 

 

Docker 를 사용해야겠다고 생각한 결정적 이유

최초 개발환경 : CentOS 8

최종 배포환경 : RHEL 7.6

 

 

최초 개발 시 발주처가 없는 상태로 내부개발이 진행되었고

개발이 완료되면 폐쇄망 환경에서 동작할 수 있도록 포팅이 필요했다.

 

당시 가장 최신버전을 선택하여 CentOS 8 환경에서 개발을 진행했고

개발완료 후 배포환경에 포팅테스트를 위해 CentOS 7 을 설치하면서 문제를 발견했다.

 

"사용되는 패키지들이 OS 버전을 타면서 다 바뀌는구나"

 

결국 준비했던 rpm 파일들을 모두 교체하는 상황이 발생하고 포팅테스트를 진행하였다.

포팅테스트를 마친 후 폐쇄망에서 설치를 진행하였고 문제가 발생하면 구글링과 추가반입을 통해 해결하였다.

 

"잘된것 아닌가?"

 

문제없이 잘 동작하고 있으며 잘된것으로 보여진다.

하지만 다른 환경에 또 같은 행위를 반복할 것이 눈에 보인다.

배포환경 체크 -> 설치셋 준비 -> 포팅테스트 -> 실패 시 삽질 -> 모듈 테스트

 

"이걸 매번한다고? 담당자가 변경되다보면 삽질은 모두가 하겠네?"

 

배포간소화 및 개인욕심을 사유로 Docker 도입을 제안하였고 반대파와 의견충돌이 있었다.

결국 혼자서 Dockerize 를 진행하게 되었다.

 


Dockerize 진행해보기 - 1

Dockerize 환경

OS : CentOS 7.9

Docker : 20.10.3, build 48d30b5

docker-compose : 1.28.2, build 67630359

 

 

우선 Docker 를 설치해보자.

(해당 설치과정은 OS 버전에 따라 상이할 수 있음)

 

인터넷이 되는 경우

Install yum-utils

$ sudo yum install -y yum-utils

 

Add docker-ce.repo

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

 

Install Docker Engine

$ sudo yum install docker-ce docker-ce-cli containerd.io

특정버전을 설치하고 싶을 때는 아래와 같이 사용한다.

$ sudo yum install docker-ce-18.09.1 docker-ce-cli-18.09.1 containerd.io

 

Start Docker

$ sudo systemctl start docker

시스템 재시작 시 docker 를 자동으로 띄울 수 있도록 설정해주자.

$ sudo systemctl enable docker

 

Test Docker

$ sudo docker run hello-world

 

 

인터넷이 안되는 경우

인터넷이 안되는 경우에는 오프라인 설치셋을 준비해서 Docker 를 설치해야한다.

 

Install yum-utils

$ sudo yum install -y yum-utils

 

Add docker-ce.repo

 

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

 

Download Docker Engine and Dependencies

오프라인 설치를 위해 yumdownloader 를 사용하였다.

$ mkdir ~/docker
$ cd ~/docker
$ sudo yumdownloader install docker-ce docker-ce-cli containerd.io

 

Create a tarball of all downloaded software packages

설치된 패키지를 tar 파일로 묶어준다.

$ tar cvzf ~/docker.tar.gz *

 

Install Docker Engine on Offline System

tar 파일을 풀어주고 준비한 rpm 파일들을 설치한다.

$ mkdir ~/docker
$ tar xvf docker.tar.gz -C ~/docker
$ cd docker
$ sudo rpm -ivh --replacefiles --replacepkgs *.rpm

 

Start Docker

$ sudo systemctl start docker

시스템 재시작 시 docker 를 자동으로 띄울 수 있도록 설정해주자.

$ sudo systemctl enable docker

 

Test Docker Container

$ sudo docker run hello-world

 

 

이후 포스팅에서는 Docker Container 를 만들기 위한

Dockerfile 작성에 대해 다뤄볼 예정입니다.

 

 

 

Reference

docs.docker.com/engine/install/centos/

www.centlinux.com/2019/02/install-docker-ce-on-offline-centos-7-machine.html

 

반응형
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기