도커(Docker) 활용

자주쓰는 명령어

  1. 컨테이너 생성, 시작

    # docker run
    
    • 형식 : docker run [옵션] [이미지이름]
      (이미지 이름은 도커허브에서 검색 가능)

    • 옵션

      • -it : bash 사용
      • -v : 디렉토리 공유 (-v /host/dir:/guest/dir)
      • -d : 백그라운드로 실행
      • -p : 포트 포워딩 (-p 80:80 호스트80포트를 컨테이너 80포트로 연결)
      • –name [컨테이너 이름]
      • –net [네트워크유형] (네트워크유형은 docker network ls 명령어로 검색 가능)
    • 예제 : docker run -it -p 80:80 -p 443:443 –name container-name image-name:latest

  2. 컨테이너 시작

    # docker start [이미지이름]
    
    • 예제 : docker start container-name
  3. 실행중인 컨테이너 접속

    # docker attach [컨테이너이름]
    
    • 설명 : exit 명령어로 빠져나오면 컨테이너가 중지되어버림, 중지하지 않고 빠져나오려면 [Ctrl + p + q]로 빠져나와야 됨
  4. 이미지 목록

    # docker images
    
  5. 이미지 삭제

    # docker rmi [이미지]
    
    • 옵션
      • -f : 강제삭제
  6. 이미지 전체삭제

    docker rmi $(docker images -q)
    
  7. 컨테이너 목록

    # docker ps
    
    • 옵션
      • -a : 생성한 컨테이너 전체 목록
  8. 전체 컨테이너 멈추기

    # docker stop $(docker ps -a -q)
    
  9. 컨테이너 삭제

    # docker rm [컨테이너ID]
    
  10. 컨테이너 전체삭제

    # docker rm $(docker ps -a -q)
    

사용자설정

docker는 root만 실행할 수 있으나 일반 사용자에게 실행권한을 주고 싶을 경우 아래 명령어 실행하고 로그아웃, 로그인

$ sudo usermod -a -G docker $USER
$ sudo service docker restart

실전예제 1 (OpenCV 생성)

  1. run docker image

    # docker run -it --dns=1.1.1.1 --name php-opencv morozovsk/php-opencv
    
  2. install php-opencv-examples into docker

    # git clone https://github.com/php-opencv/php-opencv-examples.git && cd php-opencv-examples
    
  3. start examples

    # php detect_face_by_dnn_ssd.php
    

실전예제 2 (APM 설치)

  1. 설명이 잘되어있는 개발자 김철수님 블로그 / 소스화일