소통하는 개발자 Sean
article thumbnail

🧭 Dockerfile 간단한 실습 

👉 1. 레지스트리에서 이미지 다운로드

사용법/예제

docker pull [OPTIONS] NAME[:TAG|@DIGEST]
docker pull httpd

 

 

👉 2. 이미지 리스트 확인

사용법/예제

docker images [OPTIONS] [REPOSITORY[:TAG]]
docker images

 

 

👉 3. 이미지 실행 (새로운 컨테이너 생성)

사용법/예제

docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
docker run httpd

  • 이미지 백그라운드 실행은 docker run -d httpd

 

 

👉 4. 현재 실행중인 컨테이너 출력

사용법/예제

docker ps

 

 

👉 4-1. 멈춘 컨테이너까지 모두 출력

사용법/예제

docker ps -a

 

 

👉 5. 컨테이너를 생성할 때 이름을 지정해서 생성

사용법/예제

docker run --name secondContainer httpd
docker ps

 

 

👉 6. 실행중인 컨테이너 중지

사용법/예제

docker stop seancontainer
docker ps

 

 

👉 7. 컨테이너 실행

사용법/예제

docker start seancontainer
docker ps

 

 

 

👉 8. 컨테이너 로그 출력

사용법/예제

docker logs seancontainer

 

 

 

👉 9. 컨테이너 삭제

사용법/예제

docker rm secondContainer
  • 해당 컨테이너는 중지된 상태여야함

 

 

👉 10. 이미지 삭제

사용법/예제

docker rmi httpd
  • 해당 이미지가 사용되고 있지 않아야함 (stop, rm 까지)

 

 

👉 11. 컨테이너 내에서 쉘 실행

사용법/예제

docker run -d --name seancontainer httpd
docker exec -it seancontainer /bin/sh

  • "seancontainer" 라는 이름의 Docker 컨테이너 내부에서 /bin/sh 쉘을 실행하게 됩니다.
  • 컨테이너 내부에서 명령어를 실행하거나 파일 시스템을 조사할 수 있습니다. 상호작용 쉘 세션은 exit 명령어를 사용하여 종료할 수 있습니다.

 

👉 12. 컨테이너 관리

사용법/예제

docker container COMMAND

 

 

 

👉 12-1. 중지된 모든 컨테이너 삭제

사용법/예제

docker container prune

 

 

 

👉 12-2. 컨테이너의 자원 사용 현황 확인

사용법/예제

docker run -d --name seancontainer httpd
docker container stats

 

 

👉 13. 이미지 관리

사용법/예제

docker image COMMAND

 

 

 

👉 13-1. 사용중이지 않은 이미지 삭제

사용법/예제

docker image prune
  • docker image prune 명령을 실행하면, 기본적으로 "dangling" 이미지만 삭제됩니다. "dangling" 이미지란 다른 이미지에 의해 참조되지 않는 이미지를 의미합니다. 이러한 이미지는 불필요하게 디스크 공간을 차지하므로 삭제하는 것이 좋습니다.
  • 그러나 "dangling" 이미지가 아닌 이미지는 docker image prune 명령을 실행해도 삭제되지 않습니다. "httpd" 이미지는 latest 태그로 레파지토리에 저장되어 있으므로 dangling 이미지가 아닙니다. 따라서 docker image prune 명령으로 이 이미지를 삭제하지 않습니다.

latest 라서 삭제가 안됨

 

 

👉 13-2. 이미지에 대한 자세한 정보 출력

사용법/예제

docker image inspect httpd

 

 

👉 13-3. 이미지를 참조해 새로운 이름의 이미지 생성

사용법/예제

docker image tag httpd seantest/httpd:latest

 

 

👉 14.레지스트리 로그인/로그아웃

사용법/예제

docker login
docker logout

 

 

👉 15. 레지스트리에 이미지 업로드

사용법/예제

docker push seantest/httpd
  • Docker Hub에서 이미지를 푸시하려면 이미지 이름에 Docker Hub 사용자 이름을 포함해야 하기 떄문에, 이미지 이름을 변경하겠습니다.
    docker tag seantest/httpd seanwkim/httpd:latest

docker hub desktop(GUI) 에서 확인

 

 

👉 16. Docker 관리

사용법/예제

docker system COMMAND

 

 

 

👉 16-1. 사용중이지 않은 데이터 삭제

사용법/예제

docker system prune

 

다음이 삭제됩니다.

  • 종료된 컨테이너
  • 사용중이지 않은 네트워크
  • 사용중이지 않은 이미지
  • 캐시

중지된 컨테이너가 삭제

 

 

🧭 Dockerfile 활용 예제

👉 1. Dockerfile

FROM httpd:latest
COPY  index.html /usr/local/apache2/htdocs/index.html
EXPOSE 80

파일이름은 Dockerfile 이어야합니다
index.html 파일도 만들기

 

 

👉 2. 이미지 만들기

docker build -t seanwkim2/httpd .
  • 현재 디렉토리에서 Dockerfile을 찾아 Docker 이미지를 빌드하고, 해당 이미지에 "seanwkim2/httpd"라는 이름을 부여합니다.

 

 

👉 3. 컨테이너 실행하기

docker run -d -p 8888:80 seanwkim2/httpd

 

 

 

-----

ref:

https://github.com/drum-grammer/docker-pro-2312/blob/main/lecture/1st/cli.md

 

profile

소통하는 개발자 Sean

@Sean-creative

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!