Docker, Docker image, Docker container, Docker 기본 명령어

01. Docker란?


<도커는 컨테이너 기반의 오픈소스 가상화 플랫폼입니다.>

SW는 컴퓨터의 실행환경에 의존성을 뛴다. 그래서 실행환경이 다른 컴퓨터에서 코드를 돌리면 내 컴퓨터와 다른 결과가 나오는 이유가 이러한 이유 때문이다.
이러한 문제를 해결할 수 있는 방법이 바로 Docker이다.
실행환경을 컨테이너라는 것을 활용하여 동일한 인터페이스를 제공하기 때문에 프로그램 배포, 관리를 단순하게 해준다.


02. 도커 이미지와 도커 컨테이너

도커 이미지(Docker Image)


서비스 운영에 필요한 프로그램, 소스코드, 라이브러리, 컴파일된 실행 파일을 묶는 형태이다.
즉, 도커 이미지는 컨테이너 생성과 실행에 필요한 모든 파일과 설정 값을 지닌 것

도커 컨데이너(Docker Container)


도커 이미지를 실행한 상태로 응용프로그램의 종속성과 함께 응용프로그램 자체를 패키징 또는 캐슐화하여 격리된 공간에서 프로세스를 실행시키는 것이다.


03. 도커 기본 명령어

1) Docker pull

  • docker image repository에서 Docker image를 가져오는 것이다.
    $ docker pull --help
    #ex)
    $ docker pull ubuntu:18.04
    #repository에서 ubuntu:18.04라는 image를 다운 받는 것이다.
    

2) Docker images

  • 로컬에 존재하는 도커 image 리스트를 출력한다.
    $ docker images
    

3) Docker ps

  • 실행중인 도커 컨테이너 리스트를 출력한다.
    $ docker ps
    # 실행중인 모든 컨테이너 리스트 출력
    $ docker ps -a
    

4) Docker run

  • 도커 컨테이너를 실행시킨다.
    $ docker run
    #ex)
    $ docker run -it --name demo1 ubuntu:18.04 /bin/bash
    #-it: container 를 실행시킴과 동시에 interactive 한 terminal 로 접속시켜주는 옵션
    #-name: 컨테이너 id 대신, 구분하기 쉽도록 지정해주는 이름
    # /bin/bash: 컨테이너를 실행시킴과 동시에 실행할 커맨드 bash 터미널을 사용한다.
    

5) Docker exec

  • Docker 컨테이너 내부에서 명령을 내리거나, 내부로 접속하는 커맨드
    $ docker exec
    # ex)
    $ docker run -it -d --name demo2 ubuntu:18.04
    # -d: 백그라운드에서 실행시켜서, 컨테이너에 접속 종료를 하더라도, 계속 실행 중이 되도록 하는 커맨드
    $ docker exec -it demo2 /bin/bash
    

6) Docker logs

  • 도커 컨테이너의 log를 확인하는 것
    $ docker logs
    # ex)
    $ docker run --name demo3 -d busybox sh -c "while true; do $(echo date); sleep 1; done"
    # test 라는 이름의 busybox 이미지를 백그라운드에서 도커 컨테이너로 실행하여, 1초에 한 번씩 현재 시간을 출력하는 커맨드
    $ docker logs demo3
    $ docker logs demo3 -f
    # -f 옵션: 계속 watch하며 출력
    

7) Docker stop

  • 실행중인 도커 컨테이너 중단시키는 것
    $ docker stop
    

8) Docker rm

  • 도커 컨테이너를 삭제하는 것
    $ docker rm
    

9) Docker rmi

  • 도커 이미지를 삭제하는 것
    $ docker images
    # 실행중인 이미지 확인
    $ docker rmi 이미지이름
    



    <출처>
    Docker
    코드 출처: fastcampus