본문 바로가기
DOCKER

[비전공자의 Docker ] 자주쓰는 명령어

by 미눅스[멘토] 2024. 12. 5.
728x90

요약 :도커야 구동해. 이름은 webserver야 백그라운드로 포트는 호스트80포트와 컨테이터80포트를 연결해 뭐를? nginx 이미지를
ㄴ docker run --name webserver -d -p 80:80 nginx

image 조작 명령어

#도커 이미지 최신버전 다운

  docker pull [이미지명:latest]

  docker pull [이미지명]

 

#도커 이미지 특정버전 다운

  docker pull [이미지명:버전]

 

#다운받은 이미지 확인

  docker image ls

  docker images

 

#도커 이미지 실행  (실행할 이미지가 없으면 도커 이미지를 다운받아 실행시켜줌)  많이 쓰인다      

ㄴ 요약 : create 와 start 작업을 한번에 시켜주고 포그라운드 상태로 실행시킨다

docker run [이미지]

옵션 : -d  

중요도 :  ★ ★ 

설명 : 포그라운드가 아닌 백그라운드 상태로 실행시킨다.

옵션 사용방법 : docker run -d [이미지]

 

옵션 : --name

설명 : 이미지를 기반으로 생성한 컨테이너에 이름을 붙이는 기능

옵션 사용방법 : docker run -d --name [붙여줄 컨테이너 이름] [이미지]

 

옵션 : -p 

중요도 :  ★ ★ ★ 

설명 : 호스트의 포트와 컨테이너의 포트 연결

옵션 사용방법 : docker run -d --name [붙여줄 컨테이너 이름]  -p [호스트 포트:컨테이너 포트] [이미지]

예시 : docker run -d -p 4000:80 nginx아래 이미지 참고

 

 

 

#컨네이너에서 사용하고 있지 않은 이미지 삭제

  docker image rm [이미지ID 4자리 이상]

옵션 : -f  

설명 : 컨네이너에서 사용중인 이미지더라고 강제 삭제

주의사항 : 컨테이너가 중단된 이미지만 삭제가능 실행중이라면 컨테이너를 중단후 명령어 실행

옵션 사용방법 : docker image rm -f  [이미지ID 4자리 이상]

 

#컨테이너에서 사용하고 있지 않은 전체 이미지 모두 삭제

(파워쉘, 리눅스 등에서만 사용 가능 cmd 사용 불가능)

 docker image rm $(docker images -q) 

 

#컨테이너에서 사용중인 이미지 모두 강제 삭제

(파워쉘, 리눅스 등에서만 사용 가능 cmd 사용 불가능)

 docker image rm -f $(docker images -q)

 

 

 

컨테이너 조작 명령어

#다운 받은 이미지에서 컨네이너 만들기 (다운받은 이미지가 없으면 다운받아 컨테이너 만들어 준)

  docker create [이미지]

 

#컨테이너 모두 확인

  docker ps -al

  docker ps -a

 

#실행중인 컨테이너 확인      

  docker ps 

 

#도커 컨테이너 실행

  docker start [컨테이너 ID 3자리 이상]

 

#도커 컨테이너 정지 (정상적으로 정지하고 안전하게 정지한다.)

  docker stop [컨테이너 ID 3자리 이상]

 

#도커 컨테이너 강제 정지 (docker stop 명령어로 정지가 안될때 주로 사용하고 비정상적인 강제 정지버)

 docker kill [컨테이너 ID 3자리 이상]

 

#도커 컨테이너 삭제

  docker rm [컨테이너 ID 3자리 이상]

 

#정지되어 있는 컨테이너  모두 삭제

(파워쉘, 리눅스 등에서만 사용 가능 cmd 사용 불가능)

  docker rm $(docker ps -qa)

 

#실행되고있는 컨테이너  모두 강제 삭제

(파워쉘, 리눅스 등에서만 사용 가능 cmd 사용 불가능)

  docker rm -f $(docker ps -qa)

 

 

컨테이너 로그 확인 명령어

#컨테이너 로그 확인

docker logs [컨네이너ID 3자리 이상]

옵션 : -f

설명 : 로그를 실시간으로 확인하고 싶을때 사용

옵션 사용방법 : docker logs -f [컨네이너ID 3자리 이상]

옵션 : --tail [로그 확인 줄]

설명 : 로그를 마지막에서 몇줄만 확인하고 싶을때 사용

옵션 사용방법 : docker logs --tail 10 [컨네이너ID 3자리 이상]

응용 : 이전 로그말고 실시간 로그만 확인하고 싶을때

docker logs --tail 0 -f [컨테이너ID]

 

포그라운드(foreground)

:내가 실행시킨 프로그램의 내용이 화면에서 실행되고 출력되는 상태. 보통 docker run [이미지]를 실행시키면 포그라운드로 실행되는데 이때 Ctrl + C 누르면 빠져나온

 

백그라운드(background)

:내가 실행시킨 프로그램이 컴퓨터 내부적으로 실행되는 상태를 의미함.

 

컨테이너 내부 접속하는 명령어

#컨테이너 내부 접속

docker exec -it [컨테이너ID 3자리 이상] bash

 

도커 볼륨 명령어

#[호스트의 디렉토리 절대 경로]에 디렉토리가 이미 존재할 경우, 호스트의 디렉토리가 컨테이너의 디텍토리를 덮어씌움

#[호스트의 디렉토리 절대 경로]에 디렉토리가 존재하지 않을 경우, 호스트의 디렉토리 절대 경로에 디렉토리를 새로 만들#고 컨테이너의 디렉토리에 있는 파일들을 호스트의 디렉토리로 복사해옴.

docker run -v [호스트의 디렉토리 절대경로]:[컨테이너의 디렉토리 절대경로] [이미지명]:[태그명]

 

 

도커 COMPOSE(컴포즈) 명령어

compose.yml 파일 

services:
  my-web-server:
    container_name: web-server
    image: nginx
    ports:
      - 80:80

 

compose.yml 실행

 주의사항 : compose.yml 파일이 있는 경로에서 실행해야 함.

#포그라운드에서 실행
docker compose up

#백그라운드에서 실행 
docker compose up -d

 

docker compose 명령어로 실행시킨 컨테이너 모두 실행 중지

#도커 compose로 실행 시킨 모든 컨테이너 실행중지
docker compose down