도커 주요 명령어

Seung jun Cha·2023년 9월 20일
0
  1. docker login

  2. docker search (--limit 숫자) ubuntu : ubuntu 이미지들을 검색

  3. docker pull ubuntu : docker hub에서 ubuntu를 다운로드

  4. docker images (-q): 도커 이미지들을 확인 (도커이미지의 id만 확인)

  5. docer rmi 이미지ID : 이미지 삭제

  6. docker create (--name) (컨테이너이름) 도커이미지 : 해당 이미지로 컨테이너 생성 (컨테이너 이름을 입력했다면 해당 이미지를 사용해서 정해진 컨테이너 이름의 컨테이너를 생성)

  7. docker ps -a (-q): 가지고 있는 모든 컨테이너들을 보여줌 (컨테이너 아이디만)

  8. docker ps : 실행중인 컨테이너를 보여줌

  9. docker rm 컨테이너이름 : 삭제

  10. docker start 컨테이너이름 : 컨테이너 실행

  11. docker run -it 컨테이너명 : 컨테이너 실행 후 해당 컨테이너로 들어가서 터미널로 명령을 진행할 수 있다. 실행과 동시에 해당 컨테이너로 들어간다

  12. docker run -it -d : 실행은 하는데 컨테이너로 들어가지는 않는다(백그라운드에서 실행됨)

  • docker run의 주요 옵션
    • -it : 이 옵션은 컨테이너를 대화형(interactive) 모드로 실행하고,
      터미널(Terminal)에 연결하라는 것을 나타냅니다. -i는 표준 입력(stdin)을 유지하고 -t는 유사 터미널(pseudo-TTY)을 할당하라는 의미입니다.
      -it 옵션을 사용하면 컨테이너 안으로 들어가 터미널 명령어를 실행하거나 컨테이너의 상태를직접 확인할 수 있습니다.
docker run -it ubuntu
  • -d : 컨테이너를 백그라운드에서 실행
docker run -d nginx
  • --rm : 컨테이너 종료시 컨테이너를 자동으로 삭제
docker run --rm ubuntu
  • -p : 호스트와 컨테이너 포트를 연결, 호스트 PC의 9999포트로 요청하면 컨테이너에 있는 80포트로 전달한다. aws서버를 사용하고 있다면 인바운드 규칙에 9999 포트를 등록해야한다.
    (호스트 PC의 특정 포트로 접근시, 해당 포트를 docker컨테이너의 특정 ip의 특정 포트로 변환해준다. NAPT 기술이라고 부른다)
docker run -p 8080:80 nginx
docker run -d -p 9999:80 httpd

docker run -d -p 8080:80 --name 설정할컨테이너명 이미지명
  • -v : 호스트와 컨테이너 디렉토리를 연결해서 호스트와 컨테이너 간에 파일을 공유
    docker run -v 호스트PC의 절대경로:도커컨테이너의 절대경로 httpd
    (컨테이너가 삭제되면 내부의 데이터도 같이 사라지는데 볼륨을 생성하여 호스트PC의 데이터와 마운트(?)하면 문제해결)
docker run -v /host/path:/container/path ubuntu
docker run -v /home/ubuntu/2021_dev_html:/usr/local/apach2/htdocs httpd

이렇게하면 /home/ubuntu/2021_dev_html와 /usr/local/apach2/htdocs 간에
데이터 공유가 이루어진다. /home/ubuntu/ 경로에 2021_dev_html가 없다면
새로 생성하고 /usr/local/apach2/htdocs 데이터가 2021_dev_html에 들어간다

도커(Docker)에서 볼륨(Volume)은 컨테이너와 호스트 간에 데이터를 공유하거나 저장하기 위한 메커니즘입니다. 도커 커맨드 라인에서 -v 또는 --volume 옵션을 사용하여 생성하거나, 도커 컴포즈 파일에서 볼륨 선언을 통해 정의할 수 있습니다. 볼륨은 도커 컨테이너의 파일 시스템에 데이터를 저장하는 방법을 제공하며, 컨테이너가 종료되거나 삭제되더라도 데이터가 영구적으로 보존됩니다. 볼륨은 도커 컨테이너 간에도 데이터를 공유하고 전달하는 데 사용됩니다.

  1. docker attach 컨테이너명 또는 아이디 : 백그라운드에서 실행중인 컨테이너에 접근
  2. docker stop 이름 또는 아이디 : 작업을 마치고 컨테이너 종료
    docker kill : 바로 종료
    exit : 컨테이너에서 나가기
  • 호스트와 AWS서버를 연결하는 방법

호스트는 탄력적 IP, 키파일은 pem파일이다. 연결을 하면 내 PC와 AWS의 EC2가 연결된다. 파일을 업로드하거나 다운로드 받을 수 있다.
사용자는 aws에서 ubuntu를 빌렸다면 ubuntu를 입력해야한다.

  1. docker system df : docker가 사용하고 있는 저장공간에 대한 정보확인
  2. docker container stats : 실행중인 컨테이너 사용 리소스
  3. docker stop $(docker ps -a -q) : 모든 컨테이너 중지
    docker rm $(docker ps -a -q) : 모든 컨테이너 삭제
    docker rmi $(docker images -q) : 모든 도커 이미지 삭제
  4. docker history 이미지명 또는 컨테이너명 : 어떤 레이어들이 있는지 볼 수 있음
  5. docker cp : 컨테이너에서 특정 파일을 호스트PC로 가져오는 명령. 반대로 호스트PC의 파일을 컨테이너 내의 특정 경로로 넣을 수도 있음
docker cp 컨테이너이름:컨테이너 안의 파일경로 -> 호스트로 가져오기
docker cp 파일이름 컨테이너이름:컨테이너 안의 파일경로 -> 컨테이너로 파일 넣기
  1. docker commit -m "설명" 컨테이너이름 : 컨테이너 변경사항을 이미지파일로 생성.
특정 이미지파일로 생성된 컨테이너에서 vim을 설치한다. 
그리고 그 컨테이너를 commit하면 vim을 설치한 이미지 파일이 생성된다.

0개의 댓글