본문 바로가기
가상화/docker

#2 docker - 컨테이너 hello world (nginx 실행)

by gntpapa 2019. 8. 27.
기존 환경에서 application을 설치하기 위해서 보통 아래와 같이 설치를 진행합니다.
  1. 소스파일 다운
  2. 컴파일 진행
  3. 컴파일 중 필요한 패키지 설치 및 완료
  4. 추가 요청 패키지 설치
  5. 반복 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)

 

nginx Tags - Docker Hub

mainline-alpine-perl 18 MB

hub.docker.com

 

여기서는 공식이미지를 가지고 실행 했지만, 내가 이미지를 만들어서 사용할수도 있습니다. 내가 이미지를 만든다는 것은 이미지 내용을 코드화 하여 관리 하게 되고, 표준화 및 유지보수가 가능해지게 되는 것입니다. 수많은 서버가 증설 하더라도 나는 똑같은 환경의 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