사용자 도구

사이트 도구


wiki:3party:docker:도커파일_사용법

문서의 이전 판입니다!


도커파일 사용법

  • description : 도커파일 사용법
  • author : 치킨5분컷
  • email : hgkim@repia.com
  • lastupdate : 2022-11-22 Tue


사전에 설치가 필요한 프로그램

  • 도커
  • 리눅스 배포판 프로그램

아래 명령어들은 어디서 쳐야하나?

  • 사전에 설치한 리눅스 배포판을 실행하여 이용한다.

도커파일란?

  • 이미지 생성에 필요한 설정 파일
  • 이미지를 코드(YAML 파일)를 통해서 정의하고 실행하는 역할을 하며, 설정 파일인 `yaml`을 기반으로 동작.
  • 재사용 가능

YAML (YAML Ain’t Markup Language)란

  • 구조화 데이터나 오브젝트를 문자열로 변환하기 위한 데이터 형식의 한 종류.
  • Space를 사용한 들여쓰기를 통해 데이터 계층을 표시.

주의사항 - tab키 절대 사용 금지. 들여쓰기의 크기가 반드시 동일 해야 하기때문. 어길시 오류발생.

docker-compose.yml 특징

  1. `YAML` 파일은 도커컴포즈에 관한 설정을 담음.
  2. 확장자로 `.yml`, `.yaml`의 형식을 사용.
  3. key / value 구조로 구성.
  4. 대소문자를 구분.
  5. 콜론(:) 뒤에는 한 칸을 띄고 사용. ex)`image: centos:7.9.2009`
  6. 대시(-)로 복수의 값을 나열.
  7. 주석 표기는 해시(#)를 이용.

주의사항 - 콜론(:) 뒤에 단어 붙여쓰기 금지. 인식 불가로 인한 오류발생.

docker compose  파일의 구조

Docker Compose 명령어

  • docker-compose.yaml 파일이 위치한 디렉토리 에서 실행 (반드시)
  • 특정 파일의 위치를 정의.
1. docker-compose up                         # 서비스와 관련된 컨테이너 생성 그리고 시작
2. docker-compose down                       # 서비스와 관련된 컨테이너 종료 후 제거
3. docker-compose start/stop/restart         # 서비스 관련 컨테이너 시작 / 종료 / 재시작
4. docker-compose kill                       # 실행 중인 컨테이너에 SIGKH 시그널을 통해서 강제 종료
5. docker-compose pause/ unpause             # 컨테이너 정지 /재가동
6. --build                                   # 컨테이너를 생성하기 전에 이미지를 빌드한다.

Docker Compose 명령어 실행 옵션

-d 백그라운드 실행
–no-deps 링크 서비스 실행하지 않음
–build 이미지 빌드
-t 타임아웃을 지정(기본 10초)

Docker Compose.yml 파일 내 사용가능한 옵션

구분 내용 명령어 순위
version : 버전 지정 최상위
services : 서비스 정의 최상위
volumes : 컨테이너에 볼륨 Mount 최상위
build : 빌드 환경 설정 service의 하위
context : Dockerfile 이 있는 디렉토리 지정 build의 하위
dockerfile : Dockerfile의 이름이 다를경우 설정 build의 하위
image : 이미지 지정 build의 하위
command : container 에서 작동하는 명령 service의 하위
entrypoint : container 에서 작동하는 명령 service의 하위
environment : 컨테이너 안 환경변수 설정 service의 하위
container_name : 컨테이너 이름 설정 service의 하위
links : 다른 컨테이너와 연결 service의 하위
ports : Host 에 컨테이너가 공개하는 포트지정 service의 하위
expose : 컨테이너끼리 공개하는 포트 지정 service의 하위

도커컴포즈를 통한 컨테이너 생성 방법

1. hgkim@LAPTOP-266L93S4:/usr/bin$ sudo mkdir DockerCompose                       # Docker가 있는 디렉토리에 DockerCompose디렉토리 생성.
2. hgkim@LAPTOP-266L93S4:/usr/bin/DockerCompose$ sudo vi Dockerfile               # DockerCompose디렉토리로 이동후 도커파일 생성 및 작성.
FROM 만들 이미지 파일 (이미지이름:버전)                                              # FROM 필수.
 
추가적으로 필요한 명령어
3. hgkim@LAPTOP-266L93S4:/usr/bin/DockerCompose$ sudo vi docker-compose.yml       # DockerCompose디렉토리에 도커컴포즈 파일 생성 및 작성.
### docker-compose.yml
version: "3.9"                #버전
services:                     #컨테이너 설정
 apserver:                    #만들 서비스 이름
   build:                     #변경사항이 많아 Dockerfile을 빌드해야할 경우 이용
    context: .                #Dockerfile의 위치. '.'은 현재 디렉토리
   ports:                     #Port포워딩할 포드범위
   - '22:22'
   - '7100-7110:7100-7110'
   - '80:80'
   - '8080:8080'
   user: root                
   privileged: true           #기본적으로는 Unprivileged모드로 실행되며, 이 모드에서는 시스템 주요 자원에 접근할 수 있는 권한이 부족하여, 특정시스템 자원에 접근하기 위해 모드 변경.
   container_name: rsa_server #생성될 컨테이너 이름.
4. docker-compose up -d --build                # 도커컴포즈 실행시 도커파일을 빌드 후 백그라운드 실행)
5. docker exec -it 컨테이너명 /bin/bash         # 컨테이너 실행.

도커컴포즈와 도커파일을 통한 활용 방법

  • 검색솔루션에 사용할 재사용 가능한 적절한 OS 컨테이너를 만들 수 있음.
  • 검색솔루션 설치(도커 기반) 과정을 줄일 수 있음.
/volume1/web/dokuwiki/data/attic/wiki/3party/docker/도커파일_사용법.1669088143.txt.gz · 마지막으로 수정됨: 2022/11/22 12:35 저자 hgkim