Please enable JavaScript to view the comments powered by Disqus.Docker 튜토리얼 nginx 컨테이너 만들기
Search

Docker 튜토리얼 nginx 컨테이너 만들기

태그
docker
kubernates
K8S
공개여부
작성일자
2022/08/31
요즘 팀의 배포 규칙이 Kubernates 로 정해지면서 Docker도 한번 정리를 했으면 좋겠다는 생각을 했다.
Docker 와 같은 container 들의 가장 큰 장점은 process 가 격리된다는 점이다.
Host OS 와 container 에서 같은 Process ID(PID)가 중복되어도 다른 프로세스임을 보장해준다.
그러한 Docker 를 간단하게 nginx 를 사용해 build 및 관리하는 커맨드를 정리해둔다.
Docker File이란 컨테이너 이미지를 만들기 위한 설정 파일이다.
즉, 빌드될 이미지의 청사진이라고 생각할 수 있다.
이런 이미지가 컨테이너가 되면 실질적으로 application이 구동된다.
1. 아래의 값을 붙여넣습니다.
cd ~/environment/
cat << EOF > Dockerfile FROM nginx:latest RUN echo '<h1> test nginx web page </h1>' >> index.html RUN cp /index.html /usr/share/nginx/html EOF
Java
복사
복사하여 붙여넣으면 Dockerfile 이 생성된다.
1.
nginx pull 가져옴
2.
html 파일에 element append
3.
nginx path에 file 이동.
Docker File에서 각각이 의미하는 바는 다음과 같습니다.
1.
FROM : Base Image 지정(OS 및 버전 명시, Base Image에서 시작해서 커스텀 이미지를 추가)
2.
RUN : shell command를 해당 docker image에 실행시킬 때 사용함
3.
WORKDIR : Docker File에 있는 RUN, CMD, ENTRYPOINT, COPY, ADD 등의 지시를 수행할 곳
4.
EXPOSE : 호스트와 연결할 포트 번호를 지정
5.
CMD : application을 실행하기 위한 명령어
6.
docker build 명령어로 이미지를 만듭니다.
name에는 컨테이너 이미지 이름을 기재하고 tag의 경우, 따로 작성하지 않으면 latest라는 값을 가지게 됩니다.
RUN 과 CMD 의 차이가 뭘까?

2. docker 이미지 만들기

docker build -t test-image .
Java
복사

3. docker 이미지 생성 확인하기

docker images
Java
복사

4. docker run 명령어로 이미지를 컨테이너로 실행한다.

아래의 명령어는 test-image라는 컨테이너 이미지를 사용하여 test-nginx라는 이름의 컨테이너를 실행하는데, 호스트 8080 포트와 컨테이너의 80 포트가 맵핑된다는 의미입니다.
docker run -p 8080:80 --name test-nginx test-image
Java
복사
그러면 아래와 같이 볼 수 있다.
앞에 port 가 밖에서 접근하는 port, 뒤에가 docker image 내부의 port
즉, 호스트의 8080 포트로 전달된 정보들이 도커를 통해, 컨테이너의 80 포트로 포워딩되는 것입니다.

5. docker logs

명령어로 해당 컨테이너의 로그를 출력해서 상태를 확인할 수 있습니다.
docker logs -f test-nginx
Java
복사

6. docker 내부에 접속하기

docker exec -it test-nginx /bin/bash
Java
복사
접속하면 이와같이 확인이 가능하다.
Cloud9 을 통해서 이렇게 확인이 가능하다

9. docker stop

실행중인 컨테이너 종료
docker stop test-nginx
Java
복사
다시 docker ps 명령어를 치면 방금까지 실행되었던 컨테이너가 목록에서 사라진 것을 확인할 수 있다.

10. docker rm

명령어로 컨테이너를 삭제합니다. 컨테이너 삭제는 컨테이너가 정지되어 있어야 가능합니다.
docker rm test-nginx
Java
복사

11. docker rmi

컨테이너 이미지를 삭제합니다.
docker rmi test-image
Java
복사
test-images 가 삭제되었다.