0%

Docker 기본 사용법

Docker 기본적인 내용

Docker를 사용하면서 아주 기본적인 사용법과 개념을 정리하려 한다.


Docker 개념

도커 이미지

  • 실행 파일, 라이브러리, 소스 등을 묶은 이미지 파일 (예 OS의 실행 파일)

도커 컨테이너

  • 이미지를 실행한 상태 (예 OS의 프로세스)

Docker 기본적인 명령어

  • 도커 이미지 출력

    • docker images
  • 컨테이너 실행

    • docker run
    • -i 옵션: 컨테이너가 STDIN을 오픈해서 유지하도록 지정
    • -t 옵션: 컨테이너에 pesudo-tty(터미널)를 할당
      • 실행중인 컨테이너 내부에서 ps 명령으로 컨테이너 프로세스 체크 가능
      • apt-get 명령으로 SW 패키지 설치 가능
    • –name 옵션: 컨테이너 이름을 지정 (옵션을 사용하지 않으면 임의의 이름을 자동 할당)
    • -d 옵션: 컨테이너를 데몬 형태로 실행
    • 포트 오픈 옵션(-p -P -v –link)
      • -p 옵션: 컨테이너의 어떤 네트워크 포트를 오픈할지 지정
        • Dockerfile의 EXPOSE 명령으로 지정한 포트의 오픈 여부가 실행단계에서 결정된다
      • -P 옵션: Dockerfile에서 EXPOSE된 모든 포트를 오픈
      • -v 옵션: 호스트에 있는 디렉터리를 컨테이너 안의 볼륨(디렉토리)으로 맵핑
        • 어플리케이션이나 코드가 아직 완성되지 않아서 이미지에 포함하고 싶지 않은 경우 유용
        • 목적지에 rw나 ro 옵션을 추가하여 목적지의 읽기/쓰기 상태 설정 가능
      • –link 옵션: 컨테이너와 컨테이너의 네트워크를 연결
        • 두개의 인자를 요구
        • 하나는 링크할 컨테이너의 이름
        • 다른 하나는 링크를 위한 alias
  • 컨테이너 목록 확인하기

    • docker ps -a
  • 컨테이너 시작하기

    • docker start hello
  • 컨테이너 재시작

    • docker restart hello
  • 컨테이너 정지하기

    • docker stop hello
  • 컨테이너 삭제하기

    • docker rm hello
  • 이미지 삭제하기

    • docker rmi ubuntu:latest
  • 모든 컨테이너 삭제하기

    • docker rm ‘docker ps -aq’

Docker 몇 가지 유용한 예제

  • Docker 기반 위에 MariaDB를 외부에서 접속하는 컨테이네 생성하기
    • docker run –name [Docker 컨테이너 이름] -e MYSQL_ROOT_PASSWORD=[root암호] -p [외부포트]:[내부포트] -d [Docker 이미지 이름]
  • Docker 기반 위에 설치된 MariaDB에 접속하기
    • sudo docker exec -it [Docker 컨테이너 이름] bash