Dockerfile CMD

이진영·2022년 10월 10일
0

Docker

목록 보기
2/10
post-thumbnail

Dockerfile CMD

복습: No
생성일: 2022년 2월 12일 오후 10:34
태그: Dockerfile

CMD란?

docker컨테이너가 시작할 때 실행하는 쉘 명령을 지정하는 명령, RUN과 비슷하지만 RUN은 이미지 작성시 실행하는 명령이고,CMD는 컨테이너를 시작할 때 실행하는 명령임

CMD ["bin/sh","-c","httpd-foreground"]

Untitled

이렇게 만들어 준 뒤 반드시 기존 이미지들을 지워줘야 한다.

  • 똑같이 빌드를 하고 , run을 한다면 잘 홈페이지가 나오는 것을 알 수 있다.
docker inspect myweb
  • 해당 도커파일의 정보를 알 수 있는다

Untitled

Untitled


가끔 사용하는 docker명령1: 컨테이너 에러 또는 출력 결과 확인하기

  1. docker ps를 통해서 자신의 웹서버를 알고 사용해야한다.
docker logs apacheweb

Untitled

  • 이렇게 한 다음 페이지를 다시 로딩 시키면

Untitled

컨테이너에서 표준 출력 , 표준 에러 등 을 확인할 수 있는 기능인데. 본래는 이런 로그를 특정 파일에다가 설정을 해준다 이게 일반적인데 doker logs의 기능이 표준 스트리밍으로 바꿨다.!

가끔 사용하는 docker명령2: 컨테이너 즉시 중지하기

  • docker stop은 즉시 컨테이너를 중단하지 않고, 현재 실행중인 단계까지는 기다린 후에 중지함
  • 이에 반해 docker kill은 즉시 컨테이너를 중지함
$ docker kill myweb

Untitled

CMD좀 더 이해하기

Untitled

  1. cmd의 배열을 bin/sh만 남기고 저장을 해준다음
  2. docker build
  3. docker run 해 주었지만 도커가 자동으로 종료와 함께 홈페이지도 안 나오는것을 알 수 있다.
  4. 그렇다면 왜 이렇게 된 것이냐!

기존에 있던 httpd-forground를 통해서 실행을 해줄 수 있었던 것인데 CMD bin/sh만 남겨저 있었기 때문에 실행이 안되는 것이다.

한만디로 덮어씌운 느낌이라고 보시면 된다.


다른 의미로 덮어 씌우기!

  • CMD명령 덮어 씌우기
docker run -dit -p 9999:80 --name httpdweb2 myweb2 /bin/sh -c httpd-forground
profile
내가 공부한 것들을 적는 공간

0개의 댓글