Docker

Docker 명령어 (기본 + 볼륨)

쿠와와 2020. 12. 28. 18:04

호스트에서의 명령어  --------------------------------------------

docker -v : 도커의 버전을 확인

 

 

docker run -i -t 이미지name 

엔진이 존재하지 않는다면 도커 허브에서 자동으로 내려받음, 그후 생성 + 내부로 들어옴 

docker create를 사용하면 생성만 하고 컨테이너 안으로 들어가지 않음

  • -i  = 상호 입출력 ( 표준 입출력이 활성화된 상호작용이 가능할 shell 환경으로 설정)
  • -t  = tty 활성화해서 배시(bash) shell을 사용하도록 컨테이너 설정 
  • --name  = 컨테이너의 이름을 설정할 수 있음 
  • -p 호스트의 포드: 컨테이터 포트 : 포트를 설정 ( 포트를 이용해서 호스트의 포트와 바인딩해 연결할 수 있게 함 ) 
  • -d : Detacjed 모드로 컨테이너 실행 - 컨테이너를 백그라운드에서 동작하는 APP으로써 실행하도록 설정, 즉 입출력이 없음 foreground로 실행되 사용자의 입력을 받지 않음. 
  • -e : 컨테이너 내부의 환경변수를 설정함 - ex) -e MYSQL_ROOT_PASSWORD=password
    • -> echo $MYSQL_ROOT_PASSWORD 해보자. 결과 password
  • --link Aname:B에서쓸name : B컨테이너에서 A컨테이너로 접근하는 방법 (내부 IP 몰라도 별칭으로 접근 가능) 

 

볼륨 ( 데이터 공유할 때 사용 )

  • -v host디렉토리:컨테이터dir = 디렉토리를 공유한다.
    • 여러번 사용가능 
    • 호스트 볼륨의 경우 완전히 같은 폴더로서 사용 (동기화 x)
      • 호스트에 폴더가 없어도 만들어줌
  • --volume-from : 컨테이너를 생설할 때 사용 => -v 적용한 컨테이너의 볼륨 디렉터리 공유할 수 있음 
  • docker volume 을 사용하는 방법 (사용방법은 docker volume 뒤에 다가 밑에 명령어 사용하면 됨)
    • create --name 컨테이너name : 
    • 로컬 호스트에 저장이되며 도커 엔진에 의해 생성되고 삭제됨
  • 나는 보통 docker run -i -t --name volumns -v /root 이렇게 사용 

 

docker inspect : 컨테이너, 이미지, 볼륨 등 도커의 모든 구성 단위의 정보를 확인할 때 상용

  • --type  [컨테이너, 이미지, 볼룸] [해당 타입에 맞는 구성요소 이름] 
  •  

 

 

컨테이너 내부로 들어가기

  • docker start : 컨테이너 실행
  • docker attach : 컨테이너 진입

 

docker exec : 컨테이너 내부의 shell 사용할 수 있음 

ex) docker exec -i -t wordpressdb /bin/bash -> 내부 컨테이너의 /bin/bash 프로세스를 실행하고 -i -t를 사용해 배시 쉘을 쓸 수 있게 유지함 (exec만 사용하면 컨테이너에서 실행한 명령어에 대한 결과만 반환)

 

 

컨테이너 내부에서 빠져나오는 방법

  • 정지후 종료 = ctrl + D, exit
  • 정지하지 않고 종료 = ctrl + Q, P

 

docker pull 이미지name

도커 공식 이미지 저장소에서 이미지를 내려받을 때 사용

 

 

호스트에서 확인 하는 docker 목록

  • docker images : 도커 엔진에 존재하는 이미지의 목록을 출력 
  • docker ps : 정지되지 않은 컨테이너 목록 확인 
    • -a = ps 뒤에 적어주면 정지된 컨테이너 목록까지 확인 가능 

 

docker rename 원래이름 바꿀이름 : 도커 이름 재설정 

 

 

docker stop 컨테이너이름 : 도커 컨테이너 중지

 

 

docker rm 컨테이너이름 : 도커 컨테이너 삭제 (실행되고 있으면 삭제되지 않음)

 

 

컨테이너 내부에서의 명령어  --------------------------------------------

리눅스랑 동일. 

 

도커 볼륨  --------------------------------------------

도커 컨테이너 (수정가능) 

도커 이미지 (읽기 전용, 수정 불가능) 

 

컨테이너 수정 삭제 쉬움 -> 데이터 날라가면 복구 힘듬 그래서 쓰는게 볼륨임