docker docs
✅ 관리/확인
docker -v
: 도커 버전 확인
systemctl status docker
: 도커 서비스 상태 확인
sudo usermod -aG docker $USER
: 도커 그룹에 유저 추가. sudo 없이 명령어 실행 가능
id -nG
: 도커 그룹에 포함된 id 확인
docker system df
: 컨테이너 공간 사용량 확인
docker history <image>
: 이미지 히스토리 조회
docker inspect [options] <image or container>
: 이미지/컨테이너의 세부정보 확인
✔ ps
docker ps
: 실행중인 컨테이너 확인
docker ps -a
: 실행 종료된 것을 포함한 모든 컨테이너 확인
✔ diff
docker diff CONTAINER
: 컨테이너의 파일 또는 디렉토리의 변경 사항 확인
✔ images
docker images
: 생성된 혹은 다운로드 된 이미지 확인
docker images -a
: 모든 이미지 확인
docker images ls -q
: 이미지의 id만 확인
✔ cp
docker cp [OPTIONS] CONTAINER:SRC_PATH DEST_PATH|-
: 컨테이너의 파일 시스템에서 로컬 시스템으로 복사
docker cp [OPTIONS] SRC_PATH|- CONTAINER:DEST_PATH
: 로컬 파일 시스템에서 컨테이너로 복사
✅ 생성
✔ run
docker run [options] <image>
: 컨테이너 생성
--name <컨테이너이름>
: 컨테이너 이름 지정
-i
: 컨테이너 입력(STDIN)을 열어둠. 터미널과 컨테이너가 지속적으로 연결
-t
: 가상터미널(tty)할당
-it
: 컨테이너 안에 입력할 수 있게 됨(대화식 프로세스의 경우 컨테이너 프로세스에 tty를 할당하려면 i
와 t
는 함께 사용해야 함)
-rm
: 컨테이너 종료 시 컨테이너 삭제
-d
: 컨테이너를 백그라운드에서 실행. 컨테이너에 들어가려면 docker attach <컨테이너이름
을 입력
docker run -d -p 8000:80 httpd
등 서버를 켜두고 다른 작업을 할 때 사용됨
-p
: 호스트(8000)와 컨테이너(80) 포트 연결
-v
: host 폴더를 컨테이너 폴더와 연결
docker run -d -p 8000:80 -v <host경로>:<container경로> httpd
--link CONTAINER:<컨테이너이름>
: 컨테이너 생성 시 CONTAINER를 '컨테이너이름'으로 연결
✅ 종료/정지/실행
✔ stop
docker stop <컨테이너이름>
: 컨테이너 종료
docker stop $(docker ps -a -q)
: 모든 컨테이너 종료
✔ kill
docker kill <컨테이너이름>
: 컨테이너 즉시 종료
✔ pause
docker pause <컨테이너이름>
: 컨테이너 정지
docker unpause <컨테이너이름>
: 컨테이너 재시작
✔ start
docker start <컨테이너이름>
: 컨테이너 실행
docker restart <컨테이너이름>
: 컨테이너 종료 후 재실행
✅ 삭제: 삭제 전에 종료 필수
✔ rm
docker rm <컨테이너이름>
: 컨테이너 삭제
docker rm $(docker ps -a -q)
: 모든 컨테이너 삭제
docker rm -f <컨테이너이름>
: 실행중인 컨테이너 강제 삭제
docker rmi <image>
: 이미지 삭제
docker rmi -f <image>
: 이미지 강제 삭제
docker rmi $(docker images -q)
: 모든 이미지 삭제
✅ 기타
✔ logs
docker logs <컨테이너이름>
: 컨테이너 로그 확인
docker logs -f <컨테이너이름>
: 실시간으로 컨테이너 로그 확인
✔ exec
docker exec [OPTIONS] <컨테이너이름> COMMAND [ARG...]
: 실행 중인 컨테이너에서 명령 실행
exit
: 연결 끊기
✔ commit
docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]
: 컨테이너 변경 사항을 포함해 기존/새로운 이미지 생성
- ex)
docker commit -m "add apache" my-container