Published on

Docker 커맨드

Docker 설치

  • 관리자 권한 변경 : sudo -i
  • 도커 설치 (Ubuntu) : apt install docker.io

이미지 관리

  • 도커 이미지 검색 : docker search 이미지이름
  • 다운로드 이미지 리스트보기 : docker images
  • 이미지 다운로드 (PULL) : docker pull 이미지이름
  • 이미지 삭제 (RMI) : docker rmi 이미지이름

컨테이너 관리

  • 컨테이너 실행 (START)
    • docker start -d 컨테이너ID
    • -d : 백그라운드로 실행
  • 컨테이너 중지 (STOP) : docker stop 컨테이너ID or 컨테이너이름
  • 컨테이너 재실행 : docker restart 컨테이너ID or 컨테이너이름
  • 컨테이너 생성 (CREATE)
    • docker create -p 80:80 --name nx nginx
    • 서비스내의 80포트를 80으로 포트포워딩하고, 컨테이너 이름은 nx로 만들고, nginx 이미지를 사용한다.
  • 컨테이너 RUN (RUN - PULL, CREATE, START 를 한번에 하는 명령어)
    • docker run -d -p 80:8080 --name tc consol/tomcat-7.0
    • 컨테이너 이름은 tc로 만들고, consol/tomcat-7.0 이미지를 사용하여 백그라운드로 실행한다.
    • consol/tomcat-7.0 서비스의 8080포트를 80포트로 포트포워딩
  • 컨테이너 삭제 (RM) : docker rm 컨테이너ID or 컨테이너이름
  • 실행중인 컨테이너 확인 : docker ps
  • 모든 컨테이너 확인 : docker ps -a
  • 모든 컨테이너 ID만 확인 : docker ps -a -q
  • 모든 컨테이너 중지 : docker stop `docker ps -a -q`
  • 모든 컨테이너 삭제 : docker rm `docker ps -a -q`

컨테이너 설정

  • 컨테이너 내부 shell 실행 : docker exec -it 컨테이너이름 /bin/bash
  • 컨테이너 로그 확인(stdout, stderr) : docker logs 컨테이너이름
  • 호스트 및 컨테이너 간 파일 복사
    • docker cp 호스트path 컨테이너이름:path
    • docker cp 컨테이너이름:path 호스트path
    • docker cp 컨테이너이름:path 컨테이너이름:path
  • 컨테이너 실행시 환경변수 설정
    • docker run --name ms -e MYSQL_ROOT_PASSWORD=pw -d mysql
    • -e 옵션으로 환경변수 MYSQL_ROOT_PASSWORD를 pw값으로 설정
    • docker shell 접속하여 printenv로 확인
  • 컨테이너 Commit
    • 작업한 컨테이너를 이미지로 저장
    • docker commit 컨테이너이름 이미지이름
    • docker commit ubuntu-cpp-container ubuntu-cpp-image