docker 심화
효율적인 Docker Setting
처음 방법은 코드를 고쳤을때 효율적이지 못하다.
즉 빌드를 다시하고 실행해야 되는 비효율적이다.
docker는 build할 때 임시 공간에서 동일한게 있으면 바로 가지고와서 처리하는데 만약에 하나라도 다른 부분이 생게되면 같은것이라도 새롭게 빌드한다.
즉 순서가 중요하다.
미리 생성된건 바로 사용하고 새롭게 변경한것만 새롭게 생성하는 방식으로 docker 를 효율적으로 사용이 가능
docker setting Bad
1
2
3
4
5
6
7
8
9
FROM node:18
COPY . /myfolder/
WORKDIR /myfolder/
RUN yarn install
RUN yarn build
CMD yarn start
docker setting Good
1
2
3
4
5
6
7
8
9
10
11
12
13
14
FROM node:18
# 패키지 먼저 설치하기
COPY ./package.json /myfolder
COPY ./yarn.lock /myfolder
WORKDIR /myfolder/
RUN yarn install
# 소스코드 복사하기
COPY . /myfolder/
RUN yarn build
# docker안에서 프로그램 실행
CMD yarn start
패키지를 먼저 설치했기 때문에 패키지는 캐시에 저장되고, 소스코드는 변경 할 때만 새롭게 빌드 시켜 주면된다.
효율적인 docker 실행
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
docker-compose up // foreground에서 작동
docker-compose up -d // background에서 작동
docker-compose stop // background docker 종료
docker-compose logs // docker 에서 작동하는 로그 확인
docker-compose logs -f // docker에서 작동하는 로그 계속해서 보여줄 수 있도록함
docker-compose logs -f --tail=100 // 마지막 100개의 로그만 볼 수 있도록함
docker ps // docker process 확인
docker ps -a // dokcer 꺼진 컴퓨터 까지 확인
docker ps -a -q // docker container id만 뽑아오기
docker rm (container id). // 꺼진 컨테이너 사용하기
docker rm `docker ps -a -q` // 꺼진 docker 컴퓨터 삭제하기
docker images // 생성한 docker image파일들을 보여준다
docker rmi `docker images -q` // docker image들 삭제
docker system prune -a // 한번에 다 지워버리는 것 ! cache , 멈춘 container 까지
background에서 작동하면 ctrl + c 를 해도 안꺼진다
이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.