이번 포스팅에서는 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
We and third parties use cookies or similar technologies ("Cookies") as described below to collect and process personal data, such as your IP address or browser information. You can learn more about how this site uses Cookies by reading our privacy policy
hub.docker.com
이미지를 다운로드하기위해 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 |
최근댓글