이번 포스팅에서는 Docker 를 사용하여 오픈소스인 Nginx 를 구동하는 예제를 진행해보겠습니다.
2021.04.06 - [Linux/Docker] - Docker 를 사용한 이유 (Why Docker?)
2021.04.17 - [Linux/Docker] - Docker 사용해보기 - 1 (Why Docker 2편 + CentOS 7.9 Docker 설치)
Docker 를 사용한 이유에서 위 사진을 사용한 적이 있다.
우선 최대한 간단하게 Docker 의 동작방식을 이해해보자.
우리는 1편에서 설치한 Docker 를 이용해 오픈소스를 실행하는 것이 목표이다.
1. Client 가 사용하고 싶은 Docker 이미지를 다운로드한다. (pull docker image)
2. 다운로드된 이미지를 Docker Container 에서 기동한다. (run docker container)
끝이다.
매우 간단하다.
이 과정을 풀어서 진행해보겠다.
필요한 이미지 다운로드하기 (Pull Docker Image)
Nginx 는 웹서버의 대표주자인 오픈소스입니다.
유사한 웹서버로는 Apache 가 있습니다. (잡설)
이미지를 다운로드하기위해 Docker Hub 를 사용합니다.
Docker Hub 는 Docker 의 공식 레포지토리입니다.
필요한 오픈소스를 검색하고 사용하면 됩니다.
오른쪽에 보이는 명령어로 nginx 이미지를 다운로드할 수 있습니다.
이미지를 다운로드하고 아래의 Description 을 참고하면서 세팅을 진행하면 됩니다.
Docker 를 사용하여 Nginx 구동해보기
Pull Nginx Image
$ sudo docker pull nginx
다운로드된 이미지는 다음 명령으로 확인할 수 있다
$ sudo docker images
Run Nginx Container Using Image
$ sudo docker run -d nginx
옵션이 더 있지만 일단 실행시켜보자.
-d 옵션은 Container 가 Background 에서 동작하도록 실행하는 옵션이다.
기존에 운영중인 Nginx 를 Docker 로 띄울 경우에는 Dockerfile 을 작성한 뒤 빌드해서 사용한다.
Dockerfile 예시
FROM nginx:1.14
RUN rm /etc/nginx/conf.d/default.conf
COPY nginx/nginx.conf /etc/nginx/nginx.conf
COPY nginx/conf.d/ssl.conf /etc/nginx/conf.d/ssl.conf
COPY nginx/default.d/ssl-redirect.conf /etc/nginx/default.d/ssl-redirect.conf
COPY certs /etc/ssl/certs
COPY ui/dist /local/path/ui/dist
Dockerfile 에서 사용한 기능 분석
FROM nginx:1.14 : nginx:1.14 이미지를 사용한다. docker image 에 없으면 레포지토리에서 찾는다.
RUN : 컨테이너 내부에서 실행할 명령을 작성한다.
COPY : 각 설정파일 위치에 해당파일들을 덮어쓴다.
----------------- 자주 사용하는 다른 옵션
WORKDIR : 컨테이너 내부에서 명령을 실행할 경로를 설정한다.
User root : 컨테이너를 실행할 계정을 선택한다.
CMD : 컨테이너가 실행될 때 수행하는 명령을 작성한다.
EXPOSE : port 를 할당할 때 사용한다.
빌드명령어
$ sudo docker build -f nginx_dockerfile -t my_custom_nginx:0.1 .
빌드 옵션설명
-f : Dockerfile Path (입력하지 않을 시 ./Dockerfile 을 사용함)
-t : Docker Image Tag (빌드 완료된 이미지의 태그)
. : 현재 디렉토리를 컨텍스트로 사용
nginx config 는 작년에 작성한 글에서 확인할 수 있다.
(깔끔하게 정리되지 않아서 추후 다른 콘텐츠에서 다시 정리예정)
2020.03.24 - [Linux/nginx] - CentOS 8 Nginx Reverse Proxy Config
2020.04.02 - [Linux/nginx] - CentOS 8 Nginx Openssl 설정하기 (https)
2020.04.07 - [Linux/nginx] - CentOS 8 Nginx Load Balancing 설정
2020.04.14 - [Linux/nginx] - CentOS 8 Docker 로 Nginx 설치하기
다음 포스팅에서는 Python 모듈을 Docker 에서 실행하는 예제를 다뤄볼 예정입니다.
Reference
docs.docker.com/engine/reference/commandline/run/
docs.docker.com/engine/reference/commandline/build/#examples
'Linux > Docker' 카테고리의 다른 글
Docker 사용해보기 - 4 (오케스트레이션 도구소개) (0) | 2021.05.24 |
---|---|
Docker 사용해보기 - 3 (python 모듈 Docker 에서 실행하기) (0) | 2021.05.10 |
Docker 사용해보기 - 1 (Why Docker 2편 + CentOS 7.9 Docker 설치) (0) | 2021.04.17 |
Docker 를 사용한 이유 (Why Docker?) (0) | 2021.04.06 |
최근댓글