Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- docker
- it기사
- aws사용자모임
- git hub
- 3티어 아키텍처
- AWS
- maven
- open ai
- nexus
- 애저
- 프로세스 관리
- 클라우드
- 함수
- terraform
- Azure
- python
- GIT
- 변수
- AI
- awskrug
- jenkins
- AI챗봇
- dockerfile
- 표준 라이브러리
- 리눅스
- 명령어
- go
- 사용자 계정 관리
- 파이썬
- Linux
Archives
- Today
- Total
We are Architect
15단계로 배우는 Docker와 쿠버네티스: 컨테이너 개발-1(7) 본문
* 이미지 빌드 개요
- 컨테이너 이미지는 어떻게 만들어지는가에 대해서 알아보자.
- 우선 도커 이미지를 만들기 위해서는 dockerfile에 docker build [옵션] [경로] 를 사용하면 된다.
* 이미지 빌드 개요 - 베이스 이미지 선택
- 이미지를 만들 때에 바탕이 되는 이미지를 베이스 이미지라고 한다. 베이스 이미지에는 리눅스의 공유 라이브러리, 동적 링크나 로드에 필요한 기초 파일들이 포함된다. 이를 기반으로 사용자 이미지를 만들게 된다.
* 이미지 빌드 개요 - 소프트웨어 패키지 설치
- 애플리케이션 실행에 필요한 소프트웨어 패키지를 설치한다. 주로 운영체제나 프로그래밍 언어의 패키지 매니저를 사용해서 설치하게 된다. dockerfile에 설치 스크립트를 기재하면 베이스 이미지 위에 소프트웨어 패키지가 설치된다.
* 이미지 빌드 개요 - 애플리케이션 소스 코드
- 깃헙 혹은 로컬에 있는 소스 코드를 이미지에 복사한다.
* 이미지 빌드 개요 - Dockerfile
- 이미지를 빌드하는 스크립트가 기재된 파일(4가지)이다.
- 베이스 이미지의 리포지터리
- 설치할 패키지
- 애플리케이션 코드와 설정 파일
- 컨테이너 기동 시 실행될 명령어.
* 빌드 실행 순서
- 진행 흐름
- 디렉터리를 준비하여 이미지에 포함시킬 파일들을 모은다.
- Dockerfile을 준비한다.
- 컨테이너에서 실행할 애플리케이션 코드를 작성하고 유닛 테스트를 실행한다.
- 이미지를 빌드한다.
- 컨테이너를 실행하고 동작을 확인한다.
- 1. 디렉터리 준비
- 폴더를 하나 만든다.
- 2. Dockerfile을 작성한다.
- 다음과 같이 작성한다.
# FROM으로 베이스 이미지 지정, alpine은 리눅스의 기본적인 커맨드만 설치되어 있는 5MB 남짓의 경량 이미지이다. FROM alpine:latest # RUN으로 컨테이너에서 실행할 명령어 지정. 패키지 매니저 업데이트 및 아스키 아트 출력하는 커맨드를 설치. RUN apk update && apk add figlet # 현재 폴더에 밑에 message라는 파일을 컨테이너 루트 밑에 배치 ADD ./message /message # CMD로 컨테이너가 가동된 후 실행하는 커맨드를 지정한다. 'cat message'의 결과를 figlet 커맨드로 전달한다. CMD cat /message | figlet
- 다음과 같이 작성한다.
- 3. 컨테이너에 들어갈 파일을 작성한다.
- 4. dockerfile을 빌드하여 이미지를 만든다.
- docker build --tag hello:1.0 이라는 명령어를 넣어준다.
- docker build --tag hello:1.0 이라는 명령어를 넣어준다.
- 5. 이미지를 사용하여 컨테이너를 실행시킨다.
'Docker' 카테고리의 다른 글
15단계로 배우는 Docker와 쿠버네티스: 컨테이너 네트워크(9) (1) | 2024.12.31 |
---|---|
15단계로 배우는 Docker와 쿠버네티스: 컨테이너 개발-2(8) (2) | 2024.12.31 |
15단계로 배우는 Docker와 쿠버네티스: 컨테이너 다루기(6) (1) | 2024.12.30 |
15단계로 배우는 Docker와 쿠버네티스: 컨테이너 첫걸음(5) (1) | 2024.12.30 |
15단계로 배우는 Docker와 쿠버네티스: 컨테이너 생명주기(4) (1) | 2024.12.27 |