ISO 이미지처럼 컨테이너 생성을 위한 템플릿
여러 읽기 전용 계층으로 구성됨 (layered file system)
컨테이너 생성 시 이미지 기반으로 읽기 전용 사용
형식: [저장소명]/[이미지명]:[태그]
예: apexacme/ubuntu:18.04, docker.io/library/nginx:latest


library는 도커허브 공식이미지 Namespace로, 여기에 사용자 이름이 위치
Private 이미지 저장소(Docker, harbor)를 설치하여 운영가능


FROM openjdk:8-jdk-alpine
RUN apk --no-cache add tzdata && cp /usr/share/zoneinfo/Asia/Seoul /etc/localtime
WORKDIR /app
COPY hello.jar hello.jar
COPY entrypoint.sh run.sh
RUN chmod 774 run.sh
ENV PROFILE=local
ENTRYPOINT ["./run.sh"]
docker imagesdocker pull [이미지:태그]docker image rm [ID] 또는 -fdocker image rm $(docker images -q)docker run [옵션] [이미지] [명령어]docker ps, 정지 포함: docker ps -adocker start|restart|stop [이름]docker container rm [ID]docker container rm $(docker ps -a -q)docker build -t [이미지:태그] .docker logindocker push [저장소명/이미지명:태그]docker image pull nginx:latest
docker run --name my-nginx -d -p 8080:80 nginx:latest
docker run --name my-new-nginx -d -p 8081:80 nginx:latest
docker container ls # = docker ps

http GET http://localhost:8080, http GET http://localhost:8081로 서비스 확인 가능

docker container stop my-nginx
docker container stop my-new-nginx
docker container rm my-nginx
docker container rm my-new-nginx
docker image rm nginx:latest
docker stop $(docker ps -a -q) && docker rm $(docker ps -a -q)
index.html 생성 (Cloud IDE):<html>
<body>
<center>
<img src="https://raw.githubusercontent.com/acmexii/demo/master/materials/smile.jpg">
<h1> Hi~ My name is Hong Gil-Dong...~~~ </h1>
</center>
</body>
</html>
Dockerfile 생성:FROM nginx
COPY index.html /usr/share/nginx/html/
docker build -t [DockerHub ID]/welcome:v1 .
docker login
docker push [DockerHub ID]/welcome:v1

docker image rm [DockerHub ID]/welcome:v1
docker run --name=welcome -d -p 8080:80 [DockerHub ID]/welcome:v1


cd inventory
mvn package -B -Dmaven.test.skip=true
java -jar target/inventory-0.0.1-SNAPSHOT.jar # 테스트 실행
docker build -t [dockerhub ID]/inventory:[YYYYMMDD] .
docker push [dockerhub ID]/inventory:[YYYYMMDD]
docker run [dockerhub ID]/inventory:[YYYYMMDD]

