컨테이너 만들기
Dockerfile
dockerfile,컨테이너 빌드
dockerfile 설명
쉽고,간단,명확한 구문을 가진 text file로 Top-Down 으로 해석
컨테이너 이미지를 생성할 수 있는 고유의 지시어를 가짐.
대소문자를 구분하지 않지만 가독성을 위해 사용함.
빌드 명령
mkdir build
cd build
nano dockerfile
FROM node: 12
COPY hello.js
CMD ["node","/hello.js"]
docker build -t imagename:tage
Dockerfile 문법
FROM : 컨테이너의 BASE IMAGE(운영환경)
MAINTAINER : 이미지를 생성한 사람의 이름 및 정보
LABEL : 컨테이너 이미지에 컨테이너의 정보를 저장.(description)
RUN : 컨테이너 빌드를 위해 base image 에서 실행할 명령
COPY : 컨테이너 빌드시 호스트의 파일을 컨테이너로 복사.
ADD : 컨테이너 빌드시 호스트의 파일(tar, url 포함)을 컨테이너로 복사
WORKDIR : 컨테이너 비륻시 명령이 실행될 작업 디렉터리 설정
ENV : 환경변수 지정
USER : 명령 및 컨테이너 실행시 적용할 유저 설정.
VOLUME : 파일 또는 디렉토리를 컨테이너의 디렉토리로 마운트
EXPOSE : 컨테이너 동작 시 외부에서 사용할 포트 지정.
CMD : 컨테이너 동작 시 자동으로 실행할 서비스나 스크립트 지정
ENTRYPOINT : CMD와 함께 사용하면서 command 지정시 사용
컨테이너 배포
컨테이너 배포
docker build -t hellojs:atest .
마지막에 '.' 을 붙이는 것은 현재 디렉토리 기준으로 작업시작을 알림.
예를들어 copy하고자 하는 파일이 tmp 에 있다면 '.' 이 아닌 '현재디렉토리/tmp' 인 'tmp' 로 써주어야함.
docker login
docker push hellojs:latest
*) nodejs 애플리케이션 컨테이너 만들기
hellojs 폴더생성 : mkdir hellojs && cd hellojs
cat > hello.js 이후 소스코드 js 소스코드입력.
*) 우분투 기반의 웹 서버 컨테이너 만들기
hellojs.js 생성
cat >(리다이렉션) 파일명은 라인입력으로 글을 작성 가능.
컨트롤 d 로 저장
Dockerfile 만들기
도커 빌드하기
docker build -t hellojs:latest .
latest는 작성하지 않아도 자동으로 인식.
그외 다른 문구 예)"v1.0.1" 이런식으로 쓸경우 docker 허브에 푸시 할 경우 함께 입력 필요.
이미지 실행시키기
*) 우분투 기반의 웹 서버 컨테이너 만들기2
hellojs.js 생성
Dockerfile 만들기
도커 빌드하기
docker build -t webserver:v1 .
latest는 작성하지 않아도 자동으로 인식.
그외 다른 문구 예)"v1.0.1" 이런식으로 쓸경우 docker 허브에 푸시 할 경우 함께 입력 필요.
이미지 실행시키기
*) 데비안 에서의 빌드 및 배포 연습
fortune을 실행시 결과 아웃풋을 다음과 같은 html 파일의 경로에 담는다.
Dockerfile 에 다음과 같이 스크립트를 작성한다.
빌드를 하고 실행한다.
docker build -t new_fortune .
docker images
docker run -d --name fortune new_fortune
docker ps
docker exec fortune cat /htdocs/index.html
*) 만든 컨테이너 배포하기
docker login
docker tag 명령어로 이름 바꿔주기
docker push
Last updated