Docker
Docker 사용하기

자주 사용하는 Docker 명령어들

📜 Docker CLI 정리

#Docker

2021년 02월 02일

Docker(도커)는 컨테이너 기반의 오픈소스 가상화 플랫폼입니다
다양한 프로그램과 실행환경을 YAML 파일로 관리할 수 있으며
서버 관리 및 배포를 단순하게 해주고 있습니다

Docker 설치


도커는 링크를 통해 설치할 수 있습니다

Docker 버전 확인하기


docker version

설치된 docker 서버와 클라이언트 정보를 조회합니다

Docker pull 명령어로 ubuntu 이미지 설치하기


docker pull ubuntu:latest

컨테이너를 실행하기 위한 이미지파일을 다운받을 수 있습니다

ubuntu:latest 는 최신 LTS Ubuntu 이미지를 말합니다

Docker images 명령어로 설치된 이미지 확인하기


docker images
REPOSITORY               TAG       IMAGE ID       CREATED          SIZE
ubuntu                   latest    f63181f19b2f   3 weeks ago      72.9MB

docker images 명령어로 설치했거나 빌드한 이미지를 확인할 수 있습니다

Docker run 명령어로 ubuntu 설치해보기


docker run --rm -it ubuntu:latest /bin/bash

ubuntu 컨테이너를 실행합니다 ubuntu:latest 는 최신 LTS Ubuntu 이미지를 말합니다 이미지에 대한 자세한 사항은 Dock Hub에서 보실 수 있습니다

자주 사용하는 Docker run 옵션

-it (interactive),(tty) 컨테이너 안에서 터미널을 실행해서 명령어를 입력할때 사용하는 옵션
-p 8080:80 도커호스트 포트:컨테이너 내부 포트, 옵션을 여러개 줘서 여러 포트를 동시에 열 수 있습니다
--name 컨테이너의 이름을 설정합니다
-v 호스트 컨테이너와 디렉토리를 마운트 합니다
-rm 컨테이너 프로세스가 종료되면 자동으로 컨테이너를 제거합니다
-d 백그라운드 모드로 실행합니다

Docker ps 명령어로 실행된 컨테이너 확인하기


docker ps
CONTAINER ID   IMAGE           COMMAND       CREATED         STATUS         PORTS     NAMES
1ed35f870d27   ubuntu:latest   "/bin/bash"   7 seconds ago   Up 6 seconds             vigilant_mestorf

docker ps 명령어로 현재 실행되고 있는 컨테이너 리스트를 볼 수 있습니다

docker ps -a
CONTAINER ID   IMAGE           COMMAND       CREATED          STATUS                     PORTS     NAMES
0795d80d1abd   ubuntu:latest   "/bin/bash"   11 seconds ago   Exited (0) 7 seconds ago             zen_dubinsky
1ed35f870d27   ubuntu:latest   "/bin/bash"   2 minutes ago    Up 2 minutes                         vigilant_mestorf

docker ps -a 명령어로 실행,종료된 모든 컨테이너의 리스트를 볼 수 있습니다

Docker stop 명령어로 컨테이너 중지하기


docker stop ${CONTAINER ID}

docker ps -a 명령어로 CONTAINER ID 를 확인한뒤 docker stop 를 통해 컨테이너를 중지할 수 있습니다
띄어쓰기로 여러개의 컨테이너를 동시에 종료할수도 있습니다

Docker rmi 명령어로 이미지 제거하기


docker rmi ${IMAGE ID}
docker rmi f63181f19b2f
Untagged: ubuntu:latest
Untagged: ubuntu@sha256:703218c0465075f4425e58fac086e09e1de5c340b12976ab9eb8ad26615c3715
Deleted: sha256:f63181f19b2fe819156dcb068b3b5bc036820bec7014c5f77277cfa341d4cb5e
Deleted: sha256:0770b7f116f8627ec336a62e65a1f79e344df7ae721eb3e06e11edca85d3d1e7
Deleted: sha256:476e931831a5b24b95ff7587cca09bde9d1d7c0329fbc44ac64793b28fb809d0
Deleted: sha256:9f32931c9d28f10104a8eb1330954ba90e76d92b02c5256521ba864feec14009

docker images 명령어로 이미지 목록을 조회해서 IMAGE ID 를 알아내면
docker rmi 명령어를 사용하여 사용하지 않는 이미지를 제거할 수 있습니다
이미지를 제거하려면 반드시 관련 컨테이너가 모두 삭제되어야 합니다

Docker logs 명령어로 컨테이너 로그 보기


docker logs ${CONTAINER ID}
docker ps
CONTAINER ID   IMAGE                      COMMAND                  CREATED          STATUS          PORTS                  NAMES
d9811a26e5de   argon1025/node-web-app:1   "docker-entrypoint.s…"   59 seconds ago   Up 59 seconds   0.0.0.0:80->8080/tcp   cranky_pascal

docker logs d9811
Running on <http://0.0.0.0:8080>

docker ps 명령어로 컨테이너 ID를 얻은 다음 해당 컨테이너에 기록된 Log를 docker logs 명령어로 열람할 수 있습니다
위는 nodejs 컨테이너를 실행하고 로그를 조회한 결과입니다

자주 사용하는 Docker logs 옵션

-f 옵션으로 로그를 실시간으로 볼 수 있습니다
--tail 옵션으로 마지막 10줄만 출력할 수 있습니다

Docker exec 명령어로 컨테이너에 명령어 실행하기


docker exec -it ${CONTAINER ID} /bin/bash

docker ps 명령어로 컨테이너 ID를 얻은 다음 docker exec 명령어로 해당 컨테이너에 접속할 수 있습니다
SSH 는 권장하지 않고 반드시 이방법으로만 컨테이너에 접속해야합니다