기존 환경에서 application을 설치하기 위해서 보통 아래와 같이 설치를 진행합니다.
- 소스파일 다운
- 컴파일 진행
- 컴파일 중 필요한 패키지 설치 및 완료
- 추가 요청 패키지 설치
- 반복 X 서버 대수
이렇게 하루 일과를 끝내고 몇 달이 지난 후 임시로 만들어준 서비스인데 증설을 해야 된다고 연락이 받게 됩니다. 기존에 설치 정보를 코드 화하여 관리 중이거나, 설치 문서를 정말 잘 작성해서 보관하고 있다면 크게 문제는 없을 것입니다.
하지만 설치 정보가 없거나, 기존 관리자의 퇴사로 인수인계가 안 되어 있는 환경이라면 다시 삽질?(처음부터 설치를 시도를 하고 그에 따른 이슈를 해결)을 할 수밖에 없다. 이렇게 힘들게 설치를 했던 것들도 docker를 활용하면 손쉽게 설치 및 유지보수가 가능해집니다.
내가 작업 했던 내용들을 이미지화해서 보관하고 필요시마다 꺼내와서 사용한다면 언제나 동일안 환경을 제공할 수 있게 됩니다. 이로 인해 인프라 환경을 코드화 및 버전관리가 가능하게 되며 특정 os에도 종속적이지가 않게 됩니다.
예를 들면 아래 명령어 한 줄이면 docker가 설치된 모든 환경에 동일한 nginx 1.17.3 version을 제공해 줄 수 있습니다. 아래 명령어 실행 후 http://localhost 접속을 하면 nginx index 페이지를 볼 수 있습니다.
docker run -d -p 80:80 --rm --name web nginx:1.17.3-alpine
- 기본 옵션 정보
-d
|
background로 실행
|
-p
|
port binding
|
--rm
|
종료시 컨테이너 삭제
|
--name web
|
컨테이너 이름
|
nginx:1.17.3-alpine |
이미지명:태그
|
NGINX 공식 도커 hub를 접속해보면 nginx 이미지가 어떻게 관리되고 있는지 확인이 가능합니다.
(https://hub.docker.com/_/nginx?tab=tags)
여기서는 공식이미지를 가지고 실행 했지만, 내가 이미지를 만들어서 사용할수도 있습니다. 내가 이미지를 만든다는 것은 이미지 내용을 코드화 하여 관리 하게 되고, 표준화 및 유지보수가 가능해지게 되는 것입니다. 수많은 서버가 증설 하더라도 나는 똑같은 환경의 application을 제공할 수 있으며, 개발/테스트/운영 환경 어느 곳이듯 똑같은 환경을 제공할 수 있게 됩니다.
'가상화 > docker' 카테고리의 다른 글
#6 docker - Private 이미지 저장소 (0) | 2019.11.25 |
---|---|
#5 docker - Public repository 1 (0) | 2019.10.07 |
#4 docker - 개인 이미지 만들기 -2 (0) | 2019.09.09 |
#3 docker - 개인 이미지 제작 - 1 (0) | 2019.09.09 |
#1 docker 설치 (0) | 2018.08.19 |