본문 바로가기
Dev Tools/Docker

[Docker] Docker Command(명령어) 정리(+옵션)

by lucas_owner 2023. 2. 20.

Docker 자주 사용하는 명령어 정리 

- Docker 에서 자주 사용하는 명령어 및 옵션들을 정리해보자. 

 

 

1. Docker System 정보 

  • docker version : Docker 버전 및 상세정보 확인
  • docker -v : Docker 버전 및 빌드 버전을 한줄로 간단하게 확인.
  • docker system info : Docker의 시스템 전체 정보 확인.
  • docker system events : 서버로 부터 실시간 이벤트를 받는다. 
  • docker system df : 도커 디스크의 사용량 확인.
  • docker login -u [ID] : 도커 허브에 로그인

 

2. Docker Image 명령어

 

2-1. image 리스트 출력 

 

- docker의 image 목록을 확인.

$docker images

# 또는 - 위의 커맨드와 아래의 커맨드는 동일함.

$docekr image ls

# 모든 이미지 표시
$docker images -a

 

2-2. image 상세 정보 표시

#docker image inspect [이미지명]

$doker image inspect boot:letest

 

2-3. docker hub image 검색

 

- docker hub에 올라와있는 public 이미지들을 검색할 수 있다. 

- Official 컬럼으로 공식 이미지인지 확인 할 수 있다.

# docker search [옵션] <검색어>
$docker search mysql

# 옵션 사용 예제 - 자동빌드 설정, star수 15개 이상인 mysql 이미지
$docker search --filter is-automated=true --filter starts=15 mysql

- 옵션

--automated=[true/false] : 자동화 빌드 설정 여부
--no-trunc=false: 모든 결과물 출력 (No Filtering)
--filter start=[start 수] <검색어> : star 수 만큼 검색. 
--filter is-official=true : 공식 이미지만 검색
--limit=[갯수] : 갯수만큼의 검색 결과물을 검색 (default = 25개)

 

2-4. Dockerfile 로 image 생성(빌드)

# 기본 커맨드
# docker build -t [dockerHub ID]/[이미지명]:[태그명] [DockerFile위치]

# 태그 지정X 시 :latest 지정됨
$docker build -t [dockerHub ID]/[이미지명] .

-t 옵션 : 만들어질 이미지를 의미.


 

2-5. image 삭제 

# 이미지만 삭제
$docker rmi [이미지 ID]

# 컨테이너 + 이미지 강제 삭제
$docker rmi -f [이미지 ID]

 

 

3. Docker Container 

 

3-1. 현재 실행중인 컨테이너 확인

$docker ps

 

3-2. 실행중, 중지중 컨테이너 리스트 확인

$docker ps -a

 

3-3. 컨테이너 삭제

# 컨테이너 단건 삭제
$docker rm [컨테이너 ID]

# 컨테이너 다건 삭제
$docker rm [컨테이너 ID}, [컨테이너 ID]

# 컨테이너 전체 삭제
$docker rm 'docker ps -a -q'

 

3-4. 컨테이너 접속

# 실행되고 있는 컨테이너에 접속 - attach
# 컨테이너 run시 /bin/bash 사용하지 않았다면 접속 불가.
$docker attach [컨테이너명, ID]

# 실행중인 컨테이너에 접속, 명령수행가능(일시적) - exec
# exit로 종료
$docker exec -it [컨테이너명, ID] /bin/bash

 

3-5. 컨테이너 시작(start), 중지(stop), 재시작(restart)

# 컨테이너 시작
$docker start [컨테이너명, ID]

# 컨테이너 중지 
$docker stop [컨테이너명, ID]

# 컨테이너 재시작
$docker restart [컨테이너명, ID]

 

3-6. Docker Run - 컨테이너화

 

- 옵션을 가장 많이 사용하고, 복잡하다. 

- local있는 image를 사용할것인가, docker hub에 존재하는 image 를 사용할것인가 등등.. 

# image -> Container 생성 및 실행
# docker run [options] image[:tag, @digest] [command] [args]

# Local
$docker run -d mysql:latest

# Docker Hub 
# docker run [options] [docker hub ID]/[이미지명]
$docker run -d test123/mysql

# 가장 많이 쓰이는 옵션 및 실전 예제 
# docker hub id가 test123인 repo에서 mysql 이미지를 컨테이너화
# 컨테이너를 터미널에 연결허용(-it), 백그라운드에서 동작(-d), 포트포워딩(-p)
# 컨테이너의 이름은 testMysql로 지정.
$docker run -it -d -p 8080:8080 --name testMysql test123/mysql

- 옵션

-it : 표준 입력(STDIN) 허용 및 터미널 연결 가능설정 (-i, -t 옵션을 같이 사용함)
-d : 컨테이너를 백그라운드에서 실행 (Ex) SpringBoot 서버 , DB{MySQL, Oracle})
-p : 컨테이너의 포트를 포워딩 하는 옵션 [host port:컨테이너 port] 
    -> 8080:3000 - 8080포트로 접속하면 컨테이너의 3000 포트로 포워딩.
--name : 생성될 컨테이너의 이름을 지정. 

 


3-7. 컨테이너 이름 변경

$docker rename [현재 컨테이너명] <변경할 컨테이너 이름>
반응형

댓글