ex) Docker Hub
ex) Dockerfile 작성 및 Image 빌드
FROM node
# Container의 작업 디렉토리 설정
WORKDIR /app
# `COPY source dest`
# soucre: Image에 포함할 resource의 경로
# dest: Image로 복사되어야 할 파일들을 저장할 Container 내부 경로
COPY . /app
RUN npm install
# document 목적으로 포트 번호를 작성한 것
# 설정에 영향을 가지 않음
EXPOSE 80
# `Run node server.js`
# 위 명령어는 틀림. Image가 빌드될 때마다 실행되기 때문
# 아래의 명령어는 Image를 기반으로 컨테이너가 시작될 때, 실행
CMD [ "node", "server.js" ]
docker build [Dockerfile이 존재하는 경로]
docker run -p [노출할 Port Number]:80 [image id | name]
직접 빌드하여 Image를 생성한 후, Contaniner 생성 및 실행
docker build -t hahic/node-hello-world .
docker push hahic/node-hello-world
docker tag nodejs-code:1 hahic/node-hello-world .
docker push hahic/node-hello-world
Image의 Tags은 name과 tag의 조합으로 이루어짐
name과 tag를 결합하면,
이미지에 특정 버전에 대한 고유 식별자를 언제나 가지게 됨
특정 이미지들의 그룹을 정의 (ex. "node")
그룹 내의 특정 이미지를 정의 (ex. "14")
모든 명령 결과를 캐시하고 이미지를 다시 빌드할 때,
명령을 다시 실행할 필요가 없으면 이러한 캐시된 결과를 사용
즉, 모든 명령어를 기반으로 하는 이미지 레이어는
레이어를 생성하고, 이러한 레이어는 캐시됨
유사한 관심사들을 레이어로 나눠서 수직적으로 배열하는 아키텍처
명령이 실행되고 Image가 빌드되면, Image가 잠기고
이 Image를 다시 빌드하지 않는 한 코드를 변경할 수 없음
Container에 접속 / Container 로그 출력
docker run
defaultdocker start -a
docker attach
Container에 접속되지 않음
docker run -d
docker start
defaultContainer에 접속 / Container 입출력
Attached Mode와 다름
docker run -it
docker start -a -i
docker --help
docker build [Dockerfile 경로]
or docker build -t [Image tag] [Dockerfile 경로]
docker images -a
docker run [Image id|name]
/ docker run --name [Container name] [Image id|name]
docker stop [Container id|name]
docker start [Container id|name]
docker logs [Container id|name]
/ docker logs -f [Container id|name]
docker rm [Container id|name]
docker rmi [Image id|tag]
docker image prune
docker run --rm [Container id|name]
docker image inspect [Image id|name]
docker inspect [Container id|name]
docker cp [원본 파일|폴더] [복사할 위치]
docker login
docker logout