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 [현재 컨테이너명] <변경할 컨테이너 이름>
반응형
'Dev Tools > Docker' 카테고리의 다른 글
[Docker] NextCloud - 홈서버 나만의 무료 클라우드 만들기 (0) | 2024.08.03 |
---|---|
[Docker] GitHub Actions CI/CD - Docker Image 자동 배포, run(CD) (2) (12) | 2023.02.19 |
[Docker] GitHub Actions CI/CD - Docker Image 자동 빌드, push(CI) (1) (0) | 2023.02.18 |
[Docker] Docker - Spring Boot로 EC2 배포하기 (0) | 2023.02.18 |
[Docker] Docker로 AWS EC2 - MySQL 설치 및 테스트 (0) | 2023.02.17 |
댓글