[Docker] nginx 이미지 생성하기
2021. 5. 12. 00:08ㆍDo! 개발
Dockerfile은 Docker 이미지 설정 파일이다. Dockerfile에 설정된 내용대로 이미지가 생성된다.
파일 생성을 위해 새로운 디렉토리를 만들었다.
~$ mkdir example
~$ cd example
~/example$ vi Dockerfile
Dockerfile에 다음과 같이 적었다.
FROM ubuntu:16.04
MAINTAINER PSY <psy@naver.com>
RUN apt-get update
RUN apt-get install -y nginx
RUN echo "\ndaemon off;" >> /etc/nginx/nginx.conf
RUN chown -R www-data:www-data /var/lib/nginx
VOLUME ["/data", "/etc/nginx/site-enabled", "/var/log/nginx"]
WORKDIR /etc/nginx
CMD ["nginx"]
EXPOSE 80
EXPOSE 13000
- 필자는 Ubuntu 16.04 버전을 사용함으로 FROM에 16.04로 적었다.
- MAINTAINER은 이미지를 생성한 사람의 정보를 설정하는 것이다. 보통 이름과 이메일을 입력한다.
- RUN은 명령을 실행한다.
- 'install -y nginx'에서 -y 옵션은 이미지 생성 중에는 사용자 입력을 받을 수 없기 때문이다.
- 나머지 RUN 명령어는 nginx 설정 명령이다.
- VOLUME은 호스트와 고유할 디렉토리 목록이다.
- CMD는 컨테이나가 시작되었을 때 실행한 실행 파일 또는 셸 스크립트이다.
- EXPOSE: 호스트와 연결할 포트 번호이다.
sudo docker build --tag hello:0.1 .
- docker build <옵션> <Dockerfile 경로> 형식이다.
- --tag 옵션으로 이미지 이름과 태그를 설정할 수 있다.
잠시 기다리면 이미지 파일이 생성된다.
sudo docker images
sudo docekr run --name hello-nginx -d -p 13000:80 -v /rot/data:/data hello:0.1
- -d 옵션은 컨테이너를 백그라운드로 실행한다.
- -p 13000:80 옵션은 호스트 시스템의 13000번 포트로 유입되는 트래픽은 모두 도커 컨테이너의 80번 포트로 연결되는 것이다.
sudo docker ps
실행된 컨테이너 목록을 출력한다.
http://<호스트 IP>:13000
위 주소로 웹 브라우저에 접속하면 아래와 같은 페이지가 뜨는 것을 확인할 수 있다.
반응형
'Do! 개발' 카테고리의 다른 글
[Linux]맨날 까먹는 가상환경 venv 모듈 정리 (0) | 2021.06.12 |
---|---|
[쿠버네티스] 쿠버네티스를 공부해보자 - 1 (1) | 2021.05.20 |
[인공지능 프로젝트]대한민국 미아 ZERO 프로젝트 (0) | 2021.05.03 |
[Linux] 네이버 클라우드 플랫폼 무료 서버 이용하기(naver cloud platform free server) (0) | 2021.01.08 |
[Flutter] Flutter version downgrade 플루터 버전 다운그레이드 (0) | 2020.12.31 |