<commit_before>---
published: true
title: Docker (2) - 이미지 만들기
layout: post
author: jihwan, hwang
category: docker
tags:
- docker
---

# 주제

linux server에 tomcat을 설치하고, web app server를 운영한다고 가정을 해 보면,
1. linux 설치
2. jvm 설치
3. tomcat 설치
4. war 배포
와 같은 일련의 작업이 요구 된다.

docker를 이용한다면, 2~4번의 작업을 간편하게 자동화 하고 운영을 할 수 있게 된다.

[docker hub](https://hub.docker.com/)에서 tomcat image를 download 하여 바로 운영할 수 있겠지만,
서비스 할 app을 배포 해야 하는 문제점이 발생한다.

여기서는, 간단하게 **HelloWorld** 를 출력하는 docker image 생성 부터, war 파일을 tomcat에 배포하여 운영 가능한 image까지 만들어 보겠다.


# HelloWorld 도커 이미지 만들기

도커 이미지를 만드는 단계는 아래와 같다.
1. Dockerfile 생성
2. image가 수행 해야 하는 작업 목록 작성
3. Dockerfile build


## 1. Dockerfile 작성
작성할 Dockerfile은 아래와 같다.

```ruby
FROM openjdk:8-jre-alpine
RUN mkdir -p /opt/my-java-app
COPY HelloWorld.class /opt/my-java-app
WORKDIR /opt/my-java-app<commit_msg>2016-12-02-docker2.md : github 소스 링크 추가<commit_after>---
published: true
title: Docker (2) - 이미지 만들기
layout: post
author: jihwan, hwang
category: docker
tags:
- docker
---

# 주제

linux server에 tomcat을 설치하고, web app server를 운영한다고 가정을 해 보면,
1. linux 설치
2. jvm 설치
3. tomcat 설치
4. war 배포
와 같은 일련의 작업이 요구 된다.

docker를 이용한다면, 2~4번의 작업을 간편하게 자동화 하고 운영을 할 수 있게 된다.

[docker hub](https://hub.docker.com/)에서 tomcat image를 download 하여 바로 운영할 수 있겠지만,
서비스 할 app을 배포 해야 하는 문제점이 발생한다.

여기서는, 간단하게 **HelloWorld** 를 출력하는 docker image 생성 부터, war 파일을 tomcat에 배포하여 운영 가능한 image까지 만들어 보겠다.

[소스](https://github.com/aimtechs/dockerEx)

# HelloWorld 도커 이미지 만들기

도커 이미지를 만드는 단계는 아래와 같다.
1. Dockerfile 생성
2. image가 수행 해야 하는 작업 목록 작성
3. Dockerfile build


## 1. Dockerfile 작성
작성할 Dockerfile은 아래와 같다.

```ruby
FROM openjdk:8-jre-alpine
RUN mkdir -p /opt/my-java-app
COPY HelloWorld.class /opt/my-java-app
WORKDIR /opt/my-java-app
{'fraction_non_alphanumeric': 0.09971181556195965, 'fraction_numerical': 0.019020172910662825, 'mean_word_length': 3.234146341463415, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 3, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 2, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '7363047', 'n_tokens_mistral': 1049, 'n_tokens_neox': 1253, 'n_words': 280}