목차

Docker Image Build

Docker Image Build 하기 및 올리기

주의할 점

한 컨테이너에서 다중 프로세스 실행

용량 줄이기

RUN yum update -y && \
yum instal .... && \
yum clean all

실행 사용자 변경

# alpine linux 사용자 추가
RUN adduser -D -h /home/worker worker
USER worker

COPY와 ADD chown

COPY --chown=<user>:<group> <hostPath> <containerPath>

ENTRYPOINT

Timezone 보정

from Docker Container time & timezone (will not reflect changes)

ENV TZ=Asia/Seoul
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone

LANG

ENV LANG=ko_KR.UTF-8

JAVA JMX

JMX_PORT…port, …rmi.port 두 군데 지정해주고, hostname에 Host의 IP를 지정해준다.

-Dcom.sun.management.jmxremote=true \
    	-Dcom.sun.management.jmxremote.port=$JMX_PORT \
    	-Dcom.sun.management.jmxremote.rmi.port=$JMX_PORT \
    	-Dcom.sun.management.jmxremote.ssl=false \
    	-Dcom.sun.management.jmxremote.authenticate=false \
    	-Djava.rmi.server.hostname=$HOST_IP"

docker 실행시 JMX_PORT-p로 노출시킨다.

Latest 올리기

Local에 있는 빌드에 버전이 있는 tag 와 :latest 태그를 함께 만들고 둘 다 push 하면 된다. tag가 달라도 이미 push 된 데이터가 있으면, 중복 Push하지 않기 때문에 데이터가 중복저장되거나 하지는 않는다.

docker build --tag my/name:customversion .
docker tag my/name:customversion my/name:customversion
docker tag my/name:customversion my/name:latest
docker push my/name:customversion
dpcler push my/name:latest

Multi Stage Build

참조