Develop/Docker

[Docker] 명령어

Gr00t 2021. 2. 3. 17:51

이미지

이미지 검색

docker search ([option]) [keyword]

도커 허브에 존재하는 이미지를 검색한다.

  • --no-trunc : 검색 결과 모두 표시
  • --limit : 검색 결과를 n개로 제한
  • --filter=stars=n : 즐겨찾기 수를 n개로 지정

이미지 다운로드

docker (image) pull ([option]) [image_name](:[tag])

도커 허브에서 이미지를 다운받는다. (image는 생략가능)

  • -a : 이미지에 존재하는 모든 태그 이미지 다운

이미지 정보 확인

docker image inspect [image]

받은 이미지에 대한 환경이나 아키텍쳐, 가상화 크기같은 자세한 정보를 확인한다.

존재하는 이미지 확인

docker images 혹은 docker image ls로 확인할 수 있다. 같은 이미지에 대해서 서로 다른 태그 정보도 볼 수 있다.

이미지 생성

이미지를 생성하는 방법은 크게 두가지가 있다.

  1. 컨테이너 내부에서 작업한 결과물을 이미지로 생성하기

    docker commit [container] [image]

  1. Dockerfile을 작성해 이미지를 생성하기

    docker build [image] [dockerfile]

도커 허브에 이미지를 공유할 경우에는 이미지 이름을 dockerhub_id/image[:tag]의 형태로 주는 것이 바람직하다.

이미지 공유

docker image push [image]

도커 허브에 이미지를 공유할 수 있도록 업로드한다.

이미지 삭제

docker rmi [image] 혹은 docker image rm [image] 를 통해서 이미지를 지울 수 있다.

태그를 인자로 주면 태그만 삭제되고 -f 옵션과 함께 id를 인자로 주면 전체가 다 삭제된다.


컨테이너

컨테이너 생성

docker (container) create ([option]) [image_name](:[tag])

container는 생략 가능하며 option에는 name, port 등이 있다.

컨테이너 실행 목록

docker ps ([option]) 하면 모든 실행되고 있는 컨테이너 목록이 출력된다.

[option]

  • -a : 모든 컨테이너
  • -l : 가장 최근에 만들어진 컨테이너

컨테이너 시작

docker start [container]

컨테이너를 시작하고 나면 ps명령으로 확인했을 때 UP상태로 나오게 된다. 여기서 문제가 있다면 이미지를 삭제하고 다시 받아보도록 하자.

  • 현재 실습대상으로 하는 CentOS의 경우, 생성 후 시작하면 바로 종료되어 UP상태를 확인할 수 없다. 각 이미지마다 사용법이 조금씩 다르므로 도커허브에서 사용법을 잘 확인하자.

컨테이너 터미널 사용

docker exec [option] [container] [terminal]

option은 표준 입출력을 사용하기 위해 거의 -it를 주고 terimal에는 사용할 터미널의 path를 주면 된다. 처음에는 대부분 이미지에 깔려있는 /bin/bash를 사용해 bash terminal을 사용한다.

컨테이너 생성 및 시작 (한번에)

docker run [option] [image_name](:[tag])

어떤 option을 주느냐에 따라 create, start, exec를 한번에 실행할 수 있다.

심지어 이미지가 없은 경우에도 아래와 같이 Unable to find image 'centos:latest' locally 라는 메세지가 뜨면서 도커허브에서 자동으로 키워드를 검색해 받아 오는 것을 볼 수 있다.

  • -it : 표준 입력 및 터미널 사용을 위해
  • --name : 컨테이너 이름 지정
  • -d : 백그라운드로 실행
  • -p : 포트포워딩 ( 8000:9000은 8000번 포트를 9000번으로 포워딩하겠다는 의미)

컨테이너 정지

docker stop ([option]) [container]

실행중인 컨테이너를 정지시킨다. 컨테이너의 상태가 Up에서 Exited로 바뀌는 것을 확인할 수 있다.

컨테이너 재시작

docker restart ([option]) [container]

정지된 컨테이너를 재시작한다. 컨테이너의 상태가 Exited에서 Up으로 바뀌는 것을 확인할 수 있다.