본문으로 건너뛰기
홈
기술
기술 전체
프로그래밍68
컴퓨터 과학63
AI48
웹 개발36
인프라33
데이터31
소프트웨어 공학18
소개
← 목록으로인프라 › 컨테이너 › Docker

3. Docker기본 명령어

목차

Docker 기본 명령어

  • docker —version : 현재 버전정보를 알 수 있다.

  • $ docker --version

  • docker –version : 현재 버전정보를 알 수 있다.

$ docker --version

docker-version.PNG — 도커버전정보

도커버전정보

  • docker info or docker system info 도커가 설치된 상세정보를 볼 수 있다.

  • $ docker info

  • $ docker system info

$ docker info
or
$ docker system info

docker-info.png — 도커정보

도커정보

  • docker run [이미지 이름] : 이미지가 없으면 가져온 뒤 컨테이너를 생성·실행한다.
$ docker run hello-world

installdocker1.png — 도커생성

  • $ docker run hello-world

  • $ docker image ls //도커 이미지 목록

도커생성

  • docker image [Commands] : 도커 이미지와 관련된 명령을 수 행할 수 있다.
$ docker image ls //도커 이미지 목록

docker-image-ls.PNG — 도커 이미지

  • docker container run <Docker 이미지명> <실행할 명령> : Docker 컨테이너를 작성 및 실행할 때는 docker container run 명령을 사용
  • $ docker container run <Docker 이미지명> <실행할 명령>
ex)  
$ docker container run ubuntu:latest /bin/echo 'Hello world'

도커 이미지

  • docker container run <실행할 명령> : Docker 컨테이너를 작성 및 실행할 때는 docker container run 명령을 사용
$ docker container run <Docker 이미지명> <실행할 명령>

ex)
$ docker container run ubuntu:latest /bin/echo 'Hello world'

$ docker container run ubuntu:latest /bin/echo ‘Hello world’ 명령을 실행하면 docker이미지가 로컬환경에 있는지 확인하고 없다면 Docker 리포지토리에서 Docker 이미지를 다운받고 아래와 같이 Hello world가 출력된다. ‘ubunt:latest’는 우분투 최신 버전의 이미지(latest)를 취득한다는 의미고 다운이 완료되면 컨테이너가 시작되어 리눅스 echo 명령을 수행한다.(두 번재부터는 다운을 받지 않음)

$ docker container run ubuntu:latest /bin/echo ‘Hello world’ 명령을 실행하면 docker이미지가 로컬환경에 있는지 확인하고 없다면 Docker 리포지토리에서 Docker 이미지를 다운받고 아래와 같이 Hello world가 출력된다. ’ubunt:latest’는 우분투 최신 버전의 이미지(latest)를 취득한다는 의미고 다운이 완료되면 컨테이너가 시작되어 리눅스 echo 명령을 수행한다.(두 번재부터는 다운을 받지 않음)

dockercontainerrun1.PNG

  • docker system df : 도커가 사용하고 있는 디스크 사용정보를 출력
$ docker system df

dockersystemdf.PNG

한 번 실행하고 결과를 확인하는 흐름

앞의 $는 터미널 프롬프트를 나타낸 표기라 실제 명령에 입력하지 않는다. 설명을 위해 코드 블록 안에 넣은 or나 //도커 이미지 목록도 셸 명령이 아니다. 아래 명령은 Docker 데몬이 실행되는 실습 환경에서 그대로 입력할 수 있다.

docker version
docker info
docker run --name hello-demo hello-world
docker container ls -a --filter name=hello-demo
docker image ls hello-world
docker container logs hello-demo
docker container rm hello-demo

docker version은 클라이언트와 서버의 버전을 확인한다. Client만 보이고 Server 연결 오류가 나타나면 데몬이 꺼졌거나 현재 사용자의 소켓 접근 권한이 없을 수 있다. hello-world는 안내 메시지를 출력한 뒤 종료되므로 docker container ls에는 보이지 않고 -a를 붙여야 보인다. logs는 종료된 컨테이너의 표준 출력도 확인할 수 있다. 컨테이너를 지워도 이미지는 별도로 남아 다음 실행 때 재사용된다. 여기서 이미지 저장과 컨테이너 실행 상태를 따로 추적하는 습관이 중요하다.

flowchart LR
  R[docker run] --> P[이미지 로컬 확인]
  P -->|없으면| U[레지스트리에서 pull]
  P -->|있으면| C[컨테이너 생성]
  U --> C
  C --> S[프로세스 실행]
  S --> E[종료 상태와 로그 확인]

오래 실행되는 서비스 살펴보기

docker run -d --name web-demo -p 127.0.0.1:8080:80 nginx:stable
docker container ls --filter name=web-demo
docker container port web-demo
curl -I http://127.0.0.1:8080
docker container logs --tail 20 web-demo
docker container stop web-demo
docker container ls -a --filter name=web-demo
docker container start web-demo
docker container rm -f web-demo

-d는 백그라운드 실행, --name은 명시적인 이름, -p는 호스트의 포트를 컨테이너 포트로 게시한다. 127.0.0.1:8080:80은 로컬 인터페이스에만 묶는다. EXPOSE 80이 이미지에 적혀 있더라도 -p 없이 호스트 브라우저에 자동 공개되지 않는다. stop은 컨테이너를 남긴 채 프로세스를 중지하고, start는 같은 컨테이너를 다시 시작한다. 반면 삭제 후 run을 하면 새 쓰기 계층으로 시작한다.

보고 싶은 것명령주의
실행 중 컨테이너docker ps종료된 것은 빠진다.
종료된 컨테이너까지docker ps -a같은 이미지의 여러 인스턴스를 구별한다.
이미지docker image ls컨테이너 목록과 다르다.
디스크 사용docker system df원인을 더 볼 때 -v를 붙인다.
실행 오류docker logs 이름로그 드라이버 설정에 따라 결과가 다르다.

docker run ubuntu:latest /bin/echo 'Hello world'는 echo가 끝나자마자 컨테이너가 종료되는 것이 정상이다. 쉘에 들어가려면 docker run --rm -it ubuntu:latest bash처럼 대화형 터미널을 사용한다. latest는 “항상 가장 최신 보안 패치가 설치된 버전”을 보장하는 고정 버전이 아니므로 배포용 이미지는 의도한 태그나 다이제스트를 검증한다.

참고: Docker 컨테이너 실행, 포트 게시, docker container CLI.

같은 카테고리의 글