ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Docker] image 관련 명령어 정리 with(실습-image 생성, 실행, 종료, 삭제)
    CI-CD/Docker 2022. 5. 30. 14:52
    반응형

    관련 자료는 docker docs를 기반으로 작성하였습니다.

     

    docker build

    docker build: The `docker build` command builds Docker images from a Dockerfile and a "context". A build's context is the set of files located in the specified `PATH` or `URL`....

    docs.docker.com

     

    docker image 관련 명령어 정리 

    # docker image 리스트 확인
    docker images 
    
    # docker image 삭제 
    # rmi remove image
    docker rmi {imageName or id}
    docker rmi hsj8314-front 
    
    # docker image 강제 종료하기 - 보통 컨테이너가 올라가 있을 때 이런 오류가 남
    # 오류 - Error response from daemon: conflict: unable to remove repository reference "{imageName}" (must force) - container 
    docker rmi -force {imageName or id}
    docker rmi -f hsj8314-front
    
    # docker image 생성하기 
    # -t tag 옵션 
    # . 는 현재 디렉토리에 있는 dockerfile을 바라보고 image를 만든다는 것 
    # tag를 생략해도 된다. 생략하면 latest로 반영이된다.
    docker build -tag {imageName}:{tag} {dockerfile_Path}
    docker build -t hsj8314-front:latest .

    docker image 실습

    순서

    • 실습용 dockerfile 생성
    • 확인
    • 생성
    • 실행하여 container 만들기
    • 삭제

    실습용 dockerfile 생성(nodejs webser만들기)

    실습용으로 dockerfile을 생성 하였다. 기본 베이스는 node:12.18.4 node웹 서버를 돌리기 위해서 docker image 만들 때 필요한 http-server를 다운받았고 workdir는 /home/node/app으로 설정 하였다 그리고 image를 run(실행) webserver를 바로 올려 주는 명령어 http-server -p 20000을 바로 실행 시켜 줄 수 있도록 cmd에 작성하였다.

     

    번외 - 이번글에서는 몰라도 됨

    dockerfile에서 RUN과 CMD의 차이점이 존재하는데 RUN은 image를 만들 때 기본적으로 설치가 되어 있어야 하는 것을 표시한다. docker image를 만들 때 실행하는 명령어 이다. CMD는 image를 run시켜 container를 만들 때 실행 되는 명령어라고 보면된다. 이번글은 image관련 이니 몰라도 됨 패스 나중에 자세히 알아 보자

     

    - 복붙하여 사용

    FROM node:12.18.4
    RUN npm install -g http-server
    WORKDIR /home/node/app
    CMD ["http-server", "-p", "20000"]

     

    image 확인 - docker ps -a

    docker images를 명령어를 활용하여 확인 가능 아래와 같이 현재 올려져 있는 image들 목록이 나옴, docker desktop에서도 images탭을 누르면 확인이 가능하다. images 명령어는 image관련 내용이 나오는 것이지 container아님 container 목록은 docker ps -a 명령어로 확인 가능

     

    image 생성 - docker build -t {imageName}:{tag}  {target_path}

    docker build -t hsj8314-front:latest ./frontend/ 명령어로 생성, 명령어를 실행하면 아래와 같이 Building이라는 내용이 나오면서 리스트가 지금은 파란색인데 하얀색으로 시작해 완료 된것은 파란색으로 변한다 exporting to image가 나오면 image 생성이 완료 된 것 오른쪽 desktop 버전에서도 image가 추가 된것을 확인 가능하다.

     

    image 실행 Container 만들기 - docker run -it —name {containerName} {imageName}:{tag} 

    docker run -it —name front hsj8314-front:latest 명령어를 활용하여 image 실행 및 container 생성 desktop 버전에서도 inuse로 상태가 변한 것을 알 수 있고, container탭에서도 list가 생성이 되고, 실행 중인 running 문구를 볼 수 있다.

     

    image 삭제 -  docker rmi {imageName},  docker rmi -f {imageName}

    일단 image를 삭제 하는 방법은 두가지가 있다. container를 모두 종료하고 삭제 하는 방법, container의 내용은 무시하고 강제로 삭제하는 방법 먼저, container를 종료 하고 삭제하는 방법 docker stop {containerName} 명령어로 container 종료 desktop 에서도 종료 된 것을 볼 수 있다. docker ps -a 명령어로도 확인 가능 이미지 탭에서도 in use 상태가 아닌 것을 확인 할 수 있다.

     

    docker rm {containerName} 명령어로 container삭제, docker rmi {imageName}명령어로 이미지 삭제 아래와 같이 deleted 된 것을 볼 수 있다. desktop에서도 image 탭에서 삭제 된 것을 볼 수 있음, rmi는 remove image의 줄임말이다.

    image 생성, 실행, 종료 및 삭제에 대해 알아 보았다. image뿐만아니라 Container동작하는 것과 docker hub push pull에 대해서도 알아두면 좋을 것 같다  

    반응형

    댓글

Designed by Tistory.