Docker를 이용하여 nginx를 실행해 보겠습니다.
진행하면서 쓰이는 각각의 명령어에 대해서도 순서대로 정리해 봤습니다.
명령어를 통해 nginx 이미지 다운받기
도커(Docker)가 실행되어 있는 상태에서 CMD 또는 PowerShell에 'docker pull nginx' 명령어만 실행하면 nginx를 설치할 수 있다. 이때 이미지를 다운로드받는다고 표현하는데, 여기서 우리는 nginx 이미지를 설치(pull)한 것이다. 이미지(Image)란 특정 프로그램을 실행하는 데 필요한 모든 정보(버전, 설정 등)를 포함한 것이라고 이해하면 된다. 추가적인 개념 내용은 여기에서 확인.
$ docker pull nginx
Using default tag: latest
latest: Pulling from library/nginx
e6557c42ebea: Pull complete
b0c073cda91f: Pull complete
8a628cdd7ccc: Pull complete
32ef64864ec3: Pull complete
ec74683520b9: Pull complete
6c95adab80c5: Pull complete
ad8a0171f43e: Pull complete
Digest: sha256:5ed8fcc66f4ed123c1b2560ed708dc148755b6e4cbd8b943fab094f2c6bfa91e
Status: Downloaded newer image for nginx:latest
docker.io/library/nginx:latest
참고로 이 이미지(Image)라는 것은 dockerhub에서 내려받아진다. dockerhub는 '컨테이너 이미지 저장소'로 소스코드 저장소인 Github와 유사한 플랫폼이다. 결국 우리는 Github와 같이 사람들이 올려둔 이미지를 pull 명령어를 통해 다운받아 사용하는 것이다.
그리고 당연하게도 각각의 이미지마다 여러 버전들이 있을 수 있다. dockerhub에서는 이러한 버전들을 tag라는 이름으로 구분하고 있다. 이미지를 pull받을때 콜론 뒤에 특정 tag를 작성하면 원하는 버전의 이미지를 다운받을 수 있다. 예를 들어 'docker pull nginx:stable-alpine3.20-perl' 식이 있겠다. 처음 방식처럼 tag 명을 작성하지 않으면, tag가 없는 이미지가 다운받아지는 것이 아니라 도커에서 자동으로 ':latest'를 붙여준다. 'latest'는 의미 그대로 최신 버전의 nginx 이미지를 나타낸다.
설치된 이미지(Image) 확인
'docker image ls' 명령어로 설치된 이미지들을 조회할 수 있다. 'REPOSITORY'는 이미지의 이름으로 직전에 다운받은 nginx 가 있는 것이 확인된다. 버전인 'TAG'를 보면 'latest' 인 것도 확인할 수 있다. 'CREATE'는 다운받은 날짜가 아니라 이미지 자체가 만들어진 날짜임을 인지하자.
※ls = list
$ docker image ls
REPOSITORY TAG IMAGE ID CREATED SIZE
nginx latest 5ed8fcc66f4e 18 hours ago 279MB
다운받은 이미지를 통해 컨테이너 실행
컨테이너라는 환경에 이미지를 꽂아 실행한다고 생각하면 쉽다. 저는 nginx 컨테이너 이름을 webserver라고 지정해 봤습니다.
$ docker run --name webserver -d -p 80:80 nginx
ca9a324c7fe306386d361318f5554d5e7b37b971d429945aeb37d602a8ee57f9
실행 명령어의 기본 골격은 docker run 이미지명[:태그명] 인데, 옵션을 풀어보면 아래와 같다.
옵션 | 설명 |
-d | 백그라운드에서 컨테이너를 실행시키는 옵션 |
--name [컨테이너 이름] | 컨테이너의 이름을 지정하는 옵션 |
-p [호스트 포트]:[컨테이너 포트] | 호스트 컴퓨터와 컨테이너의 포트를 매핑하는 옵션 |
Nginx 서버 실행 확인
브라우저에 localhost:80 을 치니 nginx가 제공하는 웹 화면이 떴음을 확인했다. 몇 줄의 명령어만으로 nginx의 설치 및 실행을 할 수 있게 된 것이다.
실행되고 있는 모든 컨테이너 상태 확인
'docker ps'명령어로 내 '호스트(host) 컴퓨터'에서 실행 중인 컨테이너를 조회할 수 있다. nginx라는 프로그램을 동작시킬 수 있는 Image를 '독립적인 컴퓨터 환경'인 컨테이너에 꽂아 'nginx 컨테이너'를 구성한 것으로 이해하면 쉽다.
※ps = process status
실행중인 컨테이너 중지하기
'docker stop 컨테이너명(or 컨테이너ID)' 명령어로 컨테이너를 종료해 보자. 이것으로 nginx가 실행 중인 컴퓨터인 컨테이너를 종료시킬 수 있다.
$ docker stop webserver
webserver
컨테이너 로그(log)보기
컨테이너가 정상적으로 잘 종료됐는지 로그로 확인해보자. '--tail' 옵션을 이용해 '로그 끝부터 표시할 줄 수'를 지정할 수 있다.
$ docker logs --tail 10 webserver
'Docker' 카테고리의 다른 글
Docker Desktop 설치 및 확인 (0) | 2025.04.17 |
---|---|
도커 컨테이너(Container)와 이미지(Image)란? (9) | 2020.11.02 |
도커(Docker)와 가상머신(Virtual Machine) 비교 (2) | 2020.10.02 |
도커(Docker)를 이용한 오라클 설치 및 실행 (0) | 2020.03.09 |
VirtualBox로 Linux(CentOS)설치 & 환경 설정하기 (0) | 2019.09.01 |