본문 바로가기
Docker

[Docker] Docker command 도커 명령어

by Chandler.j 2022. 5. 25.
반응형

fig1. title

 

0. Diagram

1. Summary

2. Command


0. Diagram

fig1. diagram of docker command


1. Summary

docker attach 실행 중인 컨테이너에 로컬 표준 입력, 출력 및 오류 스트림 연결
docker build 도커 파일에서 이미지 빌드
docker builder 빌드 관리
docker checkpoint 체크포인트 관리
docker commit 컨테이너의 변경 사항에서 새 이미지 생성
docker config 도커 구성 관리
docker container 컨테이너 관리
docker context 컨텍스트 관리
docker cp 컨테이너와 로컬 파일 시스템 간에 파일/폴더 복사
docker create 새 컨테이너 생성
docker diff 컨테이너 파일 시스템의 파일 또는 디렉터리 변경 내용 검사
docker events 서버에서 실시간 이벤트 가져오기
docker exec 실행 중인 컨테이너에서 명령 실행
docker export 컨테이너의 파일 시스템을 tar 아카이브로 내보내기
docker history 이미지 기록 표시
docker image 이미지 관리
docker images 이미지 나열
docker import tarball에서 콘텐츠를 가져와 파일 시스템 이미지 생성
docker info 시스템 전체 정보 표시
docker inspect 도커 개체에 대한 하위 수준의 정보 반환
docker kill 하나 이상의 실행중인 컨테이너 kill
docker load tar 아카이브 또는 STDIN에서 이미지 로드
docker login 도커 레지스트리에 로그인
docker logout 도커 레지스트리에서 로그아웃
docker logs 컨테이너의 로그 가져오기
docker manifest 도커 이미지 매니페스트 및 매니페스트 목록 관리
docker network 네트워크 관리
docker node 스왑 노드 관리
docker pause 하나 이상의 컨테이너 내의 모든 프로세스 일시 중지
docker plugin 플러그인 관리
docker port 컨테이너에 대한 포트 매핑 또는 특정 매핑 나열
docker ps 컨테이너 나열
docker pull 레지스트리에서 이미지 또는 리포지토리 꺼내기
docker push 이미지 또는 리포지토리를 레지스트리에 푸시
docker rename 컨테이너 이름 변경
docker restart 하나 이상의 컨테이너 재시작
docker rm 하나 이상의 컨테이너 제거
docker rmi 하나 이상의 이미지 제거
docker run 새 컨테이너에서 명령 실행
docker save 하나 이상의 이미지를 tar 아카이브에 저장(기본적으로 STDOUT으로 스트리밍됨)
docker search 도커 허브에서 이미지 검색
docker secret 도커 비밀 관리
docker service 서비스 관리
docker stack 도커 스택 관리
docker start 중지된 하나 이상의 컨테이너 시작
docker stats 컨테이너 리소스 사용 통계의 라이브 스트림 표시
docker stop 하나 이상의 실행 중인 컨테이너 중지
docker swarm Swarm 관리
docker system 도커 관리
docker tag SOURCE_IMAGE를 참조하는 TARGET_IMAGE 태그를 생성
docker top 컨테이너의 실행 프로세스 표시
docker trust Docker 이미지에 대한 신뢰 관리
docker unpause 하나 이상의 컨테이너 내의 모든 프로세스 일시 중지 해제
docker update 하나 이상의 컨테이너 구성 업데이트
docker version 도커 버전 정보 표시
docker volume 볼륨 관리
docker wait 하나 이상의 컨테이너가 멈출 때까지 차단한 다음 종료 코드를 인쇄

2. Practice

- Basic

  • Check Docker version
docker version
  • Pull Docker image
docker pull [imagename]:[tag]

# ubuntu:20.04
docker pull ubuntu:20.04
  • 보유한 image 확인
docker images
  • image 삭제
docker rmi [option] imagename1 [imagename2, ....]
  • Container list
docker ps [option]

# 정지된 container 까지 확인하려는 경우
docker ps -a
  • Comtainer size
docker ps --size | grep [container name]
  • Container Shell 진입
# 특정 컨테이너의 쉘을 얻으며 동작시킨다.
docker exec -it [container name or ID] /bin/bash

# root로 실행
docker exec -u 0 -it [container name or ID] /bin/bash

# 실행된 특정 컨테이너에 추가적인 명령어([command])를 동작시킨다.
docker exec [container name or ID] [command]
  • Host <-> Container 파일 복사
# Host -> Container
docker cp [host_filepath] [container_name]:[container_filepath]

# Container -> Host
docker cp [continer_name]:[container_filepath] [host_filepath]
  • Container 중지 & 삭제
# 중지
docker stop [container name or ID]

# 삭제 (Container가 중지된 상태에서)
docker rm [container name or ID]
# 강제 삭제
docker rm -f [container name or ID]
  • 사용중인 container를 image로 만들기
docker commit [container_name] [image_name]

- Advanced

docker run

docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
OPTIONS default description
--add-host   사용자 지정 호스트-IP 매핑 추가(host:ip)
--attach , -a   STDIN, STDOUT 또는 STDERR 연결
--detach , -d   백그라운드에서 컨테이너 실행  컨테이너 ID 출력
--detach-keys   컨테이너 분리를 위한  시퀀스 재정의
--disable-content-trust TRUE 이미지 확인 건너뛰기
--env , -e   환경 변수 설정
--env-file   환경 변수 파일에서 읽기
--expose   포트 또는 포트 범위 노출
--group-add   가입할 그룹 추가
--hostname , -h   컨테이너 호스트 이름
--mount   파일 시스템 마운트를 컨테이너에 연결
--name   컨테이너에 이름 할당
--net   컨테이너를 네트워크에 연결
--net-alias   컨테이너에 대한 네트워크 범위 별칭 추가
--network   컨테이너를 네트워크에 연결
--network-alias   컨테이너에 대한 네트워크 범위 별칭 추가
--pull missing 실행하기 전에 이미지 가져오기
--read-only   컨테이너의 루트 파일 시스템을 읽기 전용으로 마운트
--restart no 컨테이너 종료  적용할 재시작 정책
--rm   컨테이너가 종료되면 자동으로 제거
--volume , -v   볼륨 마운트 바인딩
--volume-driver   컨테이너용 옵션 볼륨 드라이버
--volumes-from   지정된 컨테이너에서 볼륨 마운트
--workdir , -w   컨테이너 내부의 작업 디렉토리

docker run example

# -d : 백그라운드 모드로 실행
docker run -d ubuntu:18.04 ls

# -p : 호스트와 컨테이너의 포트를 연결(포워딩)
docker run -p 8080:3500 node:12.16.1

# -v : 호스트의 디렉토리와 컨테이너의 디렉토리를 연결
docker run -v [호스트]:[컨테이너] [image_name]
docker run -v /home/docker/data:/app/data ubuntu:18.04

# -e : 컨테이너 내에서 사용할 환경변수 설정 (여러개 사용 시, -e옵션 여러번 사용)
docker run -e [환경변수 이름]=[환경변수 값]
docker run -e DATA=/app/data ubuntu:18.04

# --name : 컨테이너 이름 설정
docker run --name mydocker -it ubuntu:18.04

# --rm : 컨테이너의 프로세스 종료 시, 컨테이너를 자동으로 제거한다.
docker run --rm ubuntu:18.04

# -it : 입출력을 가능하게 하고, tty를 활성화하여 bash 쉘을 사용
docker run -it ubuntu:18.04

docker image

docker image COMMAND
COMMAND 설명
docker image build Dockerfile에서 이미지 빌드
docker image history 이미지의 history 표시
docker image ls 이미지 나열
docker image prune 사용하지 않는 이미지 제거
docker image pull 레지스트리에서 이미지 또는 저장소 가져오기
docker image push 이미지 또는 저장소를 레지스트리에 푸시
docker image rm 하나 이상의 이미지 제거
docker image tag SOURCE_IMAGE 참조하는 TARGET_IMAGE 태그 생성

docker container

docker container COMMAND
COMMAND 설명
docker container attach 실행 중인 컨테이너에 로컬 표준 입력, 출력  오류 스트림 연결
docker container commit 컨테이너의 변경 사항에서  이미지 만들기
docker container cp 컨테이너와 로컬 파일 시스템 간에 파일/폴더 복사
docker container create  컨테이너 만들기
docker container exec 실행 중인 컨테이너에서 명령 실행
docker container inspect 하나 이상의 컨테이너에 대한 자세한 정보 표시
docker container kill 하나 이상의 실행 중인 컨테이너 종료
docker container logs 컨테이너의 로그 가져오기
docker container ls 컨테이너 나열
docker container pause 하나 이상의 컨테이너  모든 프로세스 일시 중지
docker container port 컨테이너에 대한 포트 매핑 또는 특정 매핑 나열
docker container prune 중지된 모든 컨테이너 제거
docker container rename 컨테이너 이름 바꾸기
docker container restart 하나 이상의 컨테이너 다시 시작
docker container rm 하나 이상의 컨테이너 제거
docker container run  컨테이너에서 명령 실행
docker container start 하나 이상의 중지된 컨테이너 시작
docker container stop 하나 이상의 실행 중인 컨테이너 중지
docker container top 컨테이너의 실행 중인 프로세스 표시
docker container unpause 하나 이상의 컨테이너 내의 모든 프로세스 일시 중지 해제

docker compose

https://engineer-mole.tistory.com/221

 

[Docker] docker compose 사용법

Docker Compose 개요  Docker compose란, 여러 개의 컨테이너로부터 이루어진 서비스를 구축, 실행하는 순서를 자동으로 하여, 관리를 간단히하는 기능이다.  Docker compose에서는 compose 파일을 준비하여

engineer-mole.tistory.com

docker compose COMMAND
COMMAND 설명
docker-compose up -d 컨테이너 생성  시작
docker-compose scale web=10 생성 컨테이너 
docker-compose ps 컨테이너 목록
docker-compose logs 컨테이너 로그
docker-compose run web /bin/cal 시작 + 명령 실행
docker-compose exec web bash 명령 실행
docker-compose start 전체 컨테이너 시작
docker-compose restart 전체 컨테이너 다시 시작
docker-compose kill 전체 컨테이너 강제 정지
docker-compose rm 전체 컨테이너 삭제
docker-compose build --no-cache 전체 컨테이너를 빌드

ref : 

https://yuehhua.github.io/categories/Docker/

https://dejavuhyo.github.io/posts/docker-basic-commands/

https://www.dongyeon1201.kr/c20f7d07-6f23-4134-ae8e-e730dc7b5af6

https://dev.classmethod.jp/articles/frequently-used-docker-command/#toc-5

https://docs.docker.com/


TOP

Designed by 티스토리