#wannabeeeeeee the best DataScientist
Docker 실습(1) 본문
✅ 이미지(Image) 다운로드
Dockerhub은 Github처럼 이미지를 저장 및 다운받을 수 있는 저장소 역할을 하는 곳이다.
https://hub.docker.com/_/nginx
nginx - Official Image | Docker Hub
Quick reference Supported tags and respective Dockerfile links 1.27.5, mainline, 1, 1.27, latest, 1.27.5-bookworm, mainline-bookworm, 1-bookworm, 1.27-bookworm, bookworm1.27.5-perl, mainline-perl, 1-perl, 1.27-perl, perl, 1.27.5-bookworm-perl, mainline-
hub.docker.com
# 도커 이미지 다운로드
# docker pull 이미지명:태크명
docker pull nginx:stable-perl
✔ 태그명을 생략하면 latest(최신 버전) 태그가 자동으로 붙어 이미지가 다운로드된다.
✅ 이미지(Image) 조회
# 이미지 조회
docker image ls
✔ LS : list 약자
✔ REPOSITORY : 이미지 이름(이미지명)
✔ TAG : 이미지 태그명
✔ IMAGE ID : 이미지 ID
✔ CREATED : 이미지가 생성된 날짜(다운받은 날짜 X)
✔ SIZE : 이미지 크기
✅ 이미지 삭제
# 특정 이미지 삭제
docker image rm [이미지 ID 또는 이미지명]
# 중지된 컨테이너에서 사용하고 있는 이미지 강제 삭제
docker image rm -f [이미지 ID 또는 이미지명]
# 컨테이너에서 사용하고 있지 않은 이미지만 전체 삭제
docker image rm $(docker images -q)
# 컨테이너에서 사용하고 있는 이미지를 포함해서 전체 이미지 삭제
docker image rm -f $(docker images -q)
✔ RM : remove 약자
✔ 전체 ID를 다 입력하지 않고 ID의 일부만 입력해도 된다.(단, ID의 일부만 입력했을 때, 입력한 ID의 일부를 가진 이미지가 단 1개여야 한다.)
✔ 실행 중인 컨테이너에서 사용하고 있는 이미지는 강제로 삭제할 수 없다.(컨테이너 중단하고 삭제 진행하여야 한다)
✅ 컨테이너(Container) 생성
# 컨테이너 생성
# docker create 이미지명[:태그명]
docker create nginx
# 컨테이너 실행
# docker start 컨테이너명[또는 컨테이너 ID]
docker start [컨테이너 ID]
✔ 이미지를 바탕으로 컨테이너를 생성한다. 이 때, 컨테이너를 실행시키지는 않는다.
✅ 컨테이너 생성+실행
✔ 이미지를 바탕으로 컨테이너를 생성한 뒤, 컨테이너를 실행까지 시킨다.
# docker run 이미지명[:태그명]
docker run nginx # 포그라운드에서 실행
# docker run -d 이미지명[:태그명]
docker run -d nginx # 백그라운드에서 실행
# Ctrl + C로 종료할 수 있음
[컨테이너에 이름 붙여서 생성 및 실행하기]
# docker run -d --name [컨테이너 이름] 이미지명[:태그명]
docker run -d --name my-web-server nginx
💡보충 개념
포그라운드(foreground)와 백그라운드(background)의 차이
- 포그라운드는 내가 실행시킨 프로그램의 내용이 화면에서 실행되고 출력되는 상태를 뜻한다. 그러다보니 포그라운드 상태에서는 다른 프로그램을 조작할 수가 없다.
- 백그라운드는 내가 실행시킨 프로그램이 컴퓨터 내부적으로 실행되는 상태를 의미한다. 그래서 프로그램이 어떻게 실행되고 있는 지에 대한 정보를 화면에서 확인할 수 없다. 이런 특성 때문에 다른 명령어를 추가로 입력할 수도 있고, 새로운 프로그램을 조작할 수도 있다.
✅ 호스트의 포트와 컨테이너의 포트 연결하기
# docker run -d -p [호스트 포트]:[컨테이너 포트] 이미지명[:태그명]
docker run -d -p 4000:80 nginx
✔ docker run -p 4000:80 라고 명령어를 입력하게 되면, 도커를 실행하는 호스트의 4000번 포트를 컨테이너의 80번 포트로 연결하도록 설정한다.
✅ 컨테이너(Container) 조회/중지/삭제
# 모든 컨테이너 조회
docker ps -a
# 실행중인 컨테이너 조회
docker ps
✔ ps : process status의 약자
✔ -a : all의 약자
# 컨테이너 중지
docker stop 컨테이너명[또는 컨테이너 ID]
docker kill 컨테이너명[또는 컨테이너 ID]
✔ 보통은 stop을 사용하고 그럼에도 종료가 안될 경우 kill 사용 권장
# 중지되어 있는 특정 컨테이너 삭제
docker rm 컨테이너명[또는 컨테이너 ID]
# 중지되어 있는 모든 컨테이너 삭제
docker rm $(docker ps -qa)
# 실행되고 있는 특정 컨테이너 삭제
docker rm -f 컨테이너명[또는 컨테이너 ID]
# 실행되고 있는 모든 컨테이너 삭제
docker rm -f $(docker ps -qa)
✅ 컨테이너(Container) 로그 조회
# 로그 조회
docker logs [nginx가 실행되고 있는 컨테이너 ID]
# 최근 로그 10줄만 조회
dokcer logs --tail 10 [컨테이너 ID 또는 컨테이너명]
# 기존 로그 조회 + 생성되는 로그를 실시간으로 보고 싶은 경우
docker logs -f [컨테이너 ID 또는 컨테이너명]
# (응용)기존 로그는 조회하지 않기 + 생성되는 로그를 실시간으로 보고 싶은 경우
docker logs --tail 0 -f [컨테이너 ID 또는 컨테이너명]
✅ 실행 중인 컨테이너 내부에 접속하기
docker exec -it [Nginx가 실행되고 있는 컨테이너 ID] bash
ls # 컨테이너 내부 파일 조회
✔ 컨테이너 내부에서 나오려면 Ctrl + D 또는 exit을 입력하면 된다.
✔ bash : 쉘(Shell)의 일종
✔ -it : -it옵션을 사용해야 명령어를 입력하고 결과를 확인할 수 있다. -it옵션을 적지 않으면 명령어를 1번만 실행시키고 종료되어 버린다. 즉, -it 옵션을 적어야 계속해서 명령어를 입력할 수 있다.
'Data scientist > Docker' 카테고리의 다른 글
Docker Compose (0) | 2025.05.11 |
---|---|
Docker File (0) | 2025.05.07 |
Docker 실습(2) (1) | 2025.05.06 |
Docker 기본 개념 (0) | 2025.05.04 |