도커 명령어 정리

Bobby·2023년 1월 26일
0

또 까먹었지..?

목록 보기
1/4
post-thumbnail

컨테이너

🐳 컨테이너 생성

docker create [image]

🐳 컨테이너 시작

docker start [container]

🐳 컨테이너 생성 및 시작

docker run [image]
  • 옵션
옵션설명
-i호스트의 표준 입력을 컨테이너와 연결
-tTTY 할당
--rm컨테이너 실행 종료 후 삭제
-d백그라운드 모드로 실행
--name {name}컨테이너 이름 지정
-p {port(host)}:{port(container)}host <-> container 포트 바인딩
-v {path(host)}:{path(container)}host <-> container 볼륨 바인딩
{image}실행할 이미지
{command}컨테이너 내에서 실행할 명령어

🐳 컨테이너 목록

docker ps
  • 옵션
옵션설명
-a전체 컨테이너 목록
-q전체 컨테이너 ID만 출력

🐳 컨테이너 상세 정보

docker inspect [container]

🐳 컨테이너 일시중지 및 재개

# 컨테이너 일시 중지
docker pause [container]
# 컨테이너 재개
docker unpause [container]

🐳 컨테이너 종료

# 컨테이너 종료
docker stop [container]
# 컨테이너 강제 종료
docker kill [container]
# 전체 컨테이너 종료
docker stop $(docker ps -a -q)

🐳 컨테이너 삭제

# 컨테이너 삭제(실행중인 컨테이너 불가)
docker rm [container]
# 컨테이너 강제 종료 후 삭제
docker rm -f [container]
# 중지된 모든 컨테이너 삭제
docker container prune

실행

🐳 엔트리포인트와 커맨드

  • 커맨드 : 컨테이너 실행 시 수행하는 동작
  • 엔트리포인트 : 커맨드 실행 전 수행하는 동작
docker --entrypoint sh ubuntu
docker --entrypoint echo ubuntu hello world

🐳 환경변수 전달

# 옵션으로 전달
docker run -it -e MY_HOST=localhost:8080 ubuntu
# 파일로 전달
docker run -it --env-file ./test.env ubuntu

🐳 명령어 실행

docker exec -it [container] [command]
  • 옵션
옵션설명
-i호스트의 표준 입력을 컨테이너와 연결
-tTTY 할당

네트워크

# 네트워크 리스트
docker network ls
  • 네트워크
single hostmulti host
bridge, host, noneoverlay
# none network (네트워크 사용X)
docker run [opt] --network=none [image]
# host network (호스트 네트워크 사용)
docker run [opt] --network=host [image]
# bridge network 생성 (브릿지 네트워크(호스트<->컨테이너) 사용)
docker network create --driver-bridge [network name]
# --net-alias 해당 이름으로 네트워크에 등록
docker run [opt] --network=[network name] --net-alias=[alias] [image]

볼륨

🐳 호스트 볼륨

  • 호스트의 경로를 컨테이너의 경로로 마운트
# 
docker run [opt] -v [host path]:[container path] [image]

🐳 볼륨 컨테이너

  • 특정 컨테이너의 볼륨 마운트를 공유
# 볼륨 컨테이너 생성
docker run [opt] --name [container name] -v [host path]:[container path] [image]
# 볼륨 컨테이너의 볼륨 공유
docker run [opt] --volumes-from [container name] [image]

🐳 도커 볼륨

  • 도커가 제공하는 볼륨 기능
  • /var/lib/docker/volumes/${volume-name}/_data 에 저장
# 도커 볼륨 생성
docker volume create --name [volume name]
#도커 볼륨 커맨드
docker volume [command]
도커 볼륨 커맨드설명
create생성
inspect상세정보
ls리스트
prune사용하지 않는 볼륨 전체 삭제
rm삭제
# 도커 볼륨 마운트
docker run [opt] -v [volume-name]:[container path] [image]
# 읽기전용 도커 볼륨 마운트
docker run [opt] -v [volume-name]:[container path]:ro [image]

로그

  • 로그 저장 경로(log driver 가 json-file 인 경우
    /var/lib/docker/containers/${container_id}/{container_id}-json.log
# 전체 로그 확인
 docker logs [container]
# 마지막 로그 n 줄 확인
docker logs --tail n [container]
# 로그 스트림 확인
docker logs -f [container]
# 로그 스트림 타임스탬프 확인
docker logs -f -t [container]
  • 컨테이너 실행 시점에 로그 설정
# 옵션으로 로그 설정 추가
docker run [option]
옵션설명
--log-driver로그 드라이버 설정
--log-opt max-size로그 파일당 최대크기 지정
--log-opt max-file로그파일 개수 지정

이미지

🐳 Dockerfile 없이 이미지 생성

# Dockerfile 없이 이미지 생성
docker commit [opt] [container] [repository[:tag]] 

# ex
docker commit -a bobby -m "add file" my_ubuntu my_ubuntu:v1
옵션설명
-a생성자
-m메시지 작성

🐳 Dockerfile로 이미지 생성

# Dockerfile로 이미지 생성
docker build [opt] [path]

# ex
docker build -t my_app:v1 -t ./my_dockerfile
옵션설명
-t빌드 이미지 이름 및 태그
-f빌드에 이용할 file 지정

🐳 이미지 압축파일로 저장

docker save -o [output-file] [image]

🐳 이미지 압출파일에서 불러오기

docker load -i [input-file]

🐳 도커 허브 사용

# 도커 허브 로그인
docker login
# 이미지 태그 생성
docker tag [target-image] [docker-hub-user/image][tag]
docker push [docker-hub-user/image]
docker pull [docker-hub-user/image]

시스템

🐳 버전

docker -v

🐳 시스템 정보

docker system info

🐳 이벤트 스트림

docker system events

🐳 디스크 사용량

docker system df
# 상세
docker system df -v

🐳 컨테이너별 사용량

docker stats 

🐳 디스크 정리

  • 사용하지 않는 컨테이너, 네트워크, 이미지, 캐시 삭제
docker system prune

도커 컴포즈

옵션설명
-p {project name}프로젝트 선택(기본값은 현재 디렉토리명)

🐳 프로젝트 목록

# 실행중인 프로젝트 목록
docker-compose ls
# 전체 프로젝트 목록
docker-compose ls -a

🐳 실행

docker-compose up
옵션설명
-p프로젝트 이름 변경(기본값은 현재 디렉토리명)
-d백그라운드 실행
--scale {service name}={count}스케일 확장

🐳 종료

# 프로젝트 내 컨테이너, 네트워크 종료 및 제거
docker-compose down
# 프로젝트 내 컨테이너, 네트워크, 볼륨 종료 및 제거
docker-compose down -v

🐳 프로젝트 내 서비스 로그

docker-compose logs

🐳 프로젝트 내 컨테이너 이벤트

docker-compose events

🐳 프로젝트 내 이미지 목록

docker-compose images

🐳 프로젝트 내 컨테이너 목록

docker-compose ps

🐳 프로젝트 내 실행중인 프로세스 목록

docker-compose top

profile
물흐르듯 개발하다 대박나기

0개의 댓글