본문으로 바로가기

Docker 컨테이너 만들기 - 실습

category Docker 2021. 5. 29. 18:29
반응형

1. nodejs 애플리케이션 컨테이너 만들기

nodejs application 소스코드 만들기. (nodejs 사이트에서 간단하게 가져와서 수정해서 쓸 수도 있고 직접 작성 해 줘도 된다. 간단하게 웹 서비스를 지원 해주는 소스 코드를 Copy & Paste 했다.)

1) 간단하게 파일을 모아놓을 디렉토리 생성 /hellohangil

2) 소스코드 파일 생성 vi hello.js

3) Docker file 생성 

기본 Base운영환경은 node:12로

빌드 시 hello.js 파일을 / 최상위 디렉토리로 복사.

컨테이너 동작시 자동으로 node, /hello.js  실행.

 

4) Docker file 빌드

docker build -t hellohengil .

명령어 한줄당 하나의 이미지 파일이 생성되는 것을 확인 할 수 있다.

5) 확인

docker images 

 

2. 우분투 기반의 웹 서버 컨테이너 만들기 

Ubuntu 18.04 버전을 기반으로 하는 apache 웹 서버를 실행하는 컨테이너 이미지를 만들려고 한다.

1) 디렉토리 생성 mkdir /webserver

2) Dockerfile 생성 vi Dockerfile 및 작성

base 운영환경 =ubuntu 18.04 버전.

LABEL maintainer = 이미지를 생성한 사람의 정보 (간단하게 내 이름과 내 블로그 주소 적었다.)

주석으로 apache를 설치 하는것을 설명.

컨테이너 빌드를 위해 apt-get update && 조건을 주어 앞에 명령어가 실행 됐을 경우 다음 명령어 실행

apt-get install -y apache2 설치 

echo "TEST WEB" > /var/www/html/index.html   ///  index.html 파일안에 TEST WEB 이란 내용 넣기.

EXPOSE 80 으로 80번 포트 지정.

CMD 명령어로 컨테이너 동작시 자동으로 /usr/sbin/apache2ctl 프로그램 실행 

3) 이미지 업로드 확인

docker image ls

webserver 이미지가 만들어진 것을 확인.

 

4) 컨테이너 이미지 동작 확인

docker run -d -p 80:80 --name web1 webserver:v1     (Tag가 latest인 것을 실행하려면 생략해도 되지만 그게 아니라면 버전을 꼭 명시해줘야 한다.)

docker ps (실행중인 도커 프로세스 확인)

웹서버가 제대로 동작 됐는지 확인 하기 위해

curl localhost:80 으로 접속

echo "TEST WEB" > /var/www/html/index.html  // 로 작성했던 Docker파일내용이 제대로 실행 돼서

웹 서버 indexfile 내용에 TEST WEB을 저장했고 그 내용을 출력 해줬다.

 

3. 만들어놓은 컨테이너 배포하기

hub.docker.com에 가입 후 그 가입한 아이디, 패스워드 인증

docker login 명령어 실행. 

id password 입력

업로드 하기 전 도커 컨테이너 이미지 파일을 만들기 전에 Repository 명을 [Docker ID]/[이미지이름] 이런식으로 만들 었어야 했는데 그렇게 안했기 때문에 이름을 수정 해준다.

docker tag webserver:v1 [Docker id]/webserver:v1 

위 명령어를 실행 해주면 

똑같은 REPOSITORY가 생긴다. ID 값은 동일하다. 이제 저 파일을 업로드 해준다
docker push [Repository]:[태그]

ex)docker push koris118/webserver:v1

hub.docker.com 에서 확인

확인 완료. 

 

 

반응형

'Docker' 카테고리의 다른 글

Docker Repositry 운영  (0) 2021.05.30
컨테이너 보관 창고 - 이론  (0) 2021.05.30
Docker 컨테이너 만들기 (이론)  (0) 2021.05.29
Docker 실습 (이미지 검색, 이미지 다운로드)  (1) 2021.05.27
Docker 설치(CentOS,Ubuntu)  (0) 2021.05.26