docker 이미지 및 컨테이너 관리 명령어 정리

nunddu·2020년 8월 23일
1

ubuntu 환경에 docker 설치하기

curl -s https://get.docker.com/ | sudo sh

docker hub에서 이미지 가져오기

docker pull [docker image]
docker hub에는 누구나 이미지를 업로드할 수 있기 때문에 officail image인지 확인하는 것을 권장한다.

도커 이미지 목록 확인하기

docker images
설치된 docker 이미지 목록을 가져온다.

컨테이너 목록 확인하기

docker ps

  • 현재 실행중인 컨테이너 목록을 보여준다.

docker ps -a

  • 전체 컨테이너 목록을 보여준다.

컨테이너 생성하기

docker run [옵션] [이미지 이름] [실행할 파일]

docker run options 정리

  • run -it 옵션으로 컨테이너를 실행할 경우 Ctrl+P,Ctrl+Q를 통해 컨테이너 무중단 상태로 빠져나올 수 있다.
  • -i (interactive), -t (Pseudo-tty) 옵션을 사용하면 실행된 Bash 셸에 입력 및 출력을 할 수 있다.
  • --name 옵션으로 컨테이너의 이름을 지정할 수 있다. 이름을 지정하지 않으면 Docker가 자동으로 이름을 생성하여 지정한다.
  • -d 옵션은 컨테이너를 백그라운드로 실행시키는 옵션으로, 컨테이너 접속 후 해제하여도 컨테이너가 종료되지 않게 한다.
  • -p 옵션으로 호스트 포트와 컨테이너 포트를 연결 한다. -p 옵션을 추가하여 여러개의 포트를 연결할 수 있다.
    • -p [container port]:[host prot]
    • ex)
      docker run -i -t -d -p 80:80 -p 8080:8080 --name [container_name] [image name]

도커 컨테이너 접속하기

docker exec -it [container name] /bin/bash

  • -it 옵션을 사용하여 무중단으로 컨테이너에서 빠져나올 수 있고, /bin/bash를 통해 컨테이너 내에 있는 bash를 실행하여 컨테이너에 접속할 수 있다.
  • exec와 run 명령의 차이점
    exec는 실행준인 컨테이너에 명령을 전달하고 run은 새로운 컨테이너를 만들어서 실행한다는 차이점이 있다.

호스트와 컨테이너 사이에 파일 공유하기

여러 가지 방법이 있지만 docker container cp 명령어를 사용하는 것이 제일 간편한 것 같다. 기본적으로 호스트 -> 컨테이너, 컨테이너 -> 호스트 양방향 모두 지원한다.

  • 호스트에서 컨테이너로 파일 공유
    docker cp [host file path] [container name]:[container path]

  • 컨테이너에서 호스트로 파일 공유
    docker cp [container name]:[container file path] [host path]

도커 이미지 및 컨테이너 삭제하기

  • 컨테이너 삭제
    • 단일 컨테이너 삭제
      docker rm [container id]
    • 복수 개 컨테이너 삭제
      docker rm [container id], [container id]
    • 모든 컨테이너 삭제
      docker rm 'docker ps -a -q'
  • 이미지 삭제
    • 단일 이미지 삭제
      docker rmi [image id]
    • 생성된 컨테이너와 함께 삭제
      docker rmi -f [image id]

참고

https://wayhome25.github.io/django/2018/03/03/django-deploy-02-nginx-wsgi/
https://tttsss77.tistory.com/155
https://nicewoong.github.io/development/2017/10/09/basic-usage-for-docker/
http://redbyzan.github.io/writing/docker-favorite/
https://datascienceschool.net/view-notebook/d4c6429bb79d4fba9e3a5397da197798/

0개의 댓글