이 장에서는 Docker를 설치한 후, Nginx를 사용한 웹서버를 구축해보기로 한다.
Docker는 Linux 커널 기능을 사용하기 때문에 보통은 Linux 배포판 상에서 작동한다. 하지만 개발환경에서 이용하기 위한 클라이언트 PC용 툴도 제공하고 있다.
(Docker 설치와 관련된 최신 문서를 확인하려면 클릭)
Ubuntu Artful 17.0 버전에서 도커를 설치하는 코드입니다.
# apt 업데이트
$ sudo apt-get update
# 패키지 설치
$ sudo apt-get install -y \
apt-transport-https \
ca-certificates \
curl \
software-properties-common
# 도커 공식 GPG 키 추가
$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt -key add -
# GPG 키 확인
$ sudo apt-key fingerprint 0EBFCD88
# 도커 레포지토리 추가
$ sudo add-apt-repository \
"deb [arch=amd64] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) \
stable"
$ sudo apt-get update
# 도커 설치하기
$ sudo apt-get install docker-ce
다른 우분투버전에서의 Docker 설치 방법은 해당 페이지를 참조할 수 있다.
설치된 Docker의 버전을 확인하려면 아래와 같은 명령을 실행해줍니다
$ docker version
Client:
Version: 17.12.0-ce
API version: 1.35
Go version: go1.9.2
Git commit: c97c6d6
Built: Wed Dec 27 20:11:19 2017
OS/Arch: linux/amd64
Server:
Engine:
Version: 17.12.0-ce
API version: 1.35 (minimum version 1.12)
Go version: go1.9.2
Git commit: c97c6d6
Built: Wed Dec 27 20:09:53 2017
OS/Arch: linux/amd64
Experimental: false
$ docker system info
명령어를 실행하면 컨테이너 수, docker 버전, 스토리지 드라이버 종류, OS 종류, 아키텍처 등을 확인 할 수 있다.
$ docker system df
명령어를 실행하면 Docker가 사용하고 있는 디스크의 이용 상황이 표시된다.
Docker를 사용한 웹 서버를 구축해 보기로 한다. 여기서는 오픈소스 웹 서버인 Nginx 환경을 구축할 것이다.
Docker 컨테이너를 시작하기 위해서는 Docker 컨테이너의 바탕이 되는 Docker 이미지가 필요하다. Docker의 공식 레포지토리인 Docker Hub에는 Nginx의 공식 이미지가 제공되어 있으며, 이 공식 이미지에는 Nginx를 작동시키기 위해 필요한 것들이 패키징 되어 있다. Nginx의 공식 이미지를 다운받아본다.
# nginx 이미지 다운로드
$ docker pull nginx
# 이미지 확인
$ docker image ls
이제 다운받은 Docker 이미지를 사용하여 Nginx 서버를 가동시켜 본다.
# Docker 이미지 'nginx'를 사용하여 'webserver'라는 이름의 Docker 컨테이너를 기동시킴
$ docker container run --name webserver -d -p 80:80 nginx
위 명령어에서는 브라우저에서 HTTP(80번 포트)에 대한 액세스를 허가하기 위해 -p 옵션을 붙여 컨테이너가 보내는 전송을 허가하고 있다.
위 명령어를 실행했다면, 사용하고 있는 PC가 Nginx의 서버로 작동하고 있는 상태일 것이다.
http://localhost:80 에 접근해 Nginx의 welcome 화면이 뜨는지 확인해보자.
Nginx 서버의 상태를 도커로 확인하고 싶다면 아래와 같은 명령어를 실행한다.
# Nginx 서버 상태 확인
$ docker container ps
# 컨테이너 가동 확인
$ docker container stats webserver
서버 프로세스를 정지하고 싶다면 아래 명령어를 실행한다.
# 컨테이너 정지
$ docker stop webserver
컨테이너가 정지했으므로 http://localhost:80 에 다시 접근하면 오류가 발생하는 것을 확인할 수 있을 것이다.
컨테이너를 다시 작동시키고 싶다면 아래 명령어를 실행한다.
# 컨테이너 기동
$ docker start webserver
본문은 'Asa Shijo, <완벽한 IT 인프라 구축을 위한 Docker>, 정보문화사(2020)' 를 참고하여 정리한 글입니다.
[참고: 완벽한 IT 인프라 구축을 위한 Docker]