지금까지 기존에 있던 이미지 그 중에서 우분투 이미지를 받아 그 위에 nginx설치를 하고 mysql 설치를하여 서버셋팅을 하였다. 하지만 매번 서버셋팅을 하는건 매우 귀찮고 번거로운 작업이다. 내 서버환경을 이미지로 직접 만들어 둔다면 매우 편할 것이다. 이번 포스팅에는 그 방법을 알아본다.

 

Dockerfile

 베이스가 되는 이미지에 추가적인 미들웨어나 어플리케이션을 설치하여 배포할 수 있게 해주는 파일이다. 파일명은 확장자 없이 Dockerfile이여야 하며 스크립트 처럼 한줄 한줄 위에서 부터 아래로 실행되는 구조이다. 명령어는 대문자로 사용한다.

 

 

 

Dockerfile 명령어

명령어 설명
FROM 생성할 이미지의 베이스가  이미지.
MAINTAINER 이미지를 생성한 개발자의 정보. 일반적으로 메일 정보를 작성
RUN 이미지 상의 리눅스 커맨드를 실행하도록 해주는 명령어
WORKDIR 명령어를 실행할 디렉토리 지정
EXPOSE 생성된 이미지와 호스트간 연결할 포트번호
CMD 도커 컨테이너가 시작할 때마다 실행할 명령어 설정

 오늘 사용할 명령어만 간단히 정리 하였다. 명령어는 위 이외에도 많으며 CMD와 ENTRYPOINT등 비슷하지만 조금씩 다른 헷갈리는 명령어가 있으므로 따로 정리하여 포스팅하기로 한다.

 

 

 

Dockerfile 작성

 vim Dockerfile 명령어로 에디터를 열어 아래와 같이 작성해 주었다.

우분투 이미지를 베이스로 사용하며 update와 nginx, nano를 설치 해주고 nginx실행까지 하는

이미지를 만드는 Dockerfile이다.

해당 도커파일로 만들어진 이미지로 컨테이너를 생성하면 호스트 pc에서 바로 nginx접속이 가능할 것이다.

 

 

 

이미지 생성

 작성한 Dockerfile을 이용해 이미지를 생성한다

$docker build --tag mydocker:0.1 ./

tag 옵션은 빌드할 이미지 이름을 지정하는 옵션이며 뒤에 '이름:버전'을 인자로 받는다.

뒤에 ./은 Dockerfile에 위치를 넣어준다.

Step이 다 실행되고 Successfully를 확인

 

docker images명령어로 확인해보니 이미지가 잘 생성됨을 알 수 있다.

 

 

 

 

만들어진 이미지 확인

이미지가 잘 만들어 졌는지 확인을 해보자. 이미지로 컨테이너 생성만 하면 nginx웹서버에 접속이 가능해야 한다.

 

컨테이너 생성.

 

확인.

 

nginx접속 확인. 

실제 서버 배포를 위해 디테일한 셋팅까지 해놓은 이미지를 만들어 두면 굉장히 유용할 것 같다.

 

 

 

 

Docker hub에 배포하기

 우선 도커계정이 필요하다. 없는 사람은 가입이 필요. 회원가입을 하면 나의 repository가 생긴다. 여기에 배포를 해보자.

 

가입 후 도커 커널에서 로그인

매우 간 - 단

 

$docker push [이미지명]

명령어로 간단히 배포를 할 수있다. 

단. 도커 로그인계정에 권한이 있는 레포지토리에만 push가 가능하다. 이미지명이 레포지토리 경로까지 포함되는거 같으므로 아래와 같이 이미지명을 xzxz1002/mydocker로 바꾸어 다시 만들었다.

내 계정으로 도커hub에 접속해보니 잘 push됨을 확인할 수 있다.

+ Recent posts