호돌찌의 AI 연구소
article thumbnail

오늘은 다른 블로그에도 많이 있지만, Docker의 기본적인 명령어 위주로 다루어 볼 예정입니다. 대다수의 명령어는 --help를 통해 arguments에 대해 공부하시는 것이 좋고, 저는 예시 위주로 작성 예정입니다. 

 

 

1) pull : docker hub의 image repo로부터 docker image를 가져오는 커맨드입니다. 

예시) docker.io/library 라는 이름의 repo에서 ubuntu:18.04라는 image를 제 로컬에 다운로드를 하게 됩니다. 

$ docker pull ubuntu:18.04

 

2) images : 로컬에 존재하는 docker image 리스트를 출력합니다. 

$ docker images

 

3) ps : 현재 실행중인 도커 컨테이너 리스트를 전부 출력하는 커맨드입니다. 

$ docker ps
$ docker ps -a

-a 를 붙이면 실행되었던 컨테이너까지 확인을 할 수 있습니다.

 

4) run : 새로운 컨테이너를 실행시키는 커맨드입니다. 옵션이 상당히 많기 때문에 docker run --help를 통해 확인하시면 됩니다. 

예시)

$ docker run -it --name demo1 ubuntu:18.04 /bin/bash
  • -it : -i 옵션 + -t 옵션
    • container를 실행시킴과 동시에 interactive 한 terminal로 접속시켜주는 옵션입니다.
    • 즉 컨테이너 내부로 접속한다고 생각하시면 됩니다.
  • --name : name
    • 컨테이너 ID를 명시적으로 알기에는 어렵기 때문에 id 대신, 구분하기 쉽도록 지정해주는 이름입니다. 자주 사용하는 컨테이너는 이름을 지정하는 게 좋습니다. 
    • 컨테이너 외부로 나와서 docker ps -a 확인하실 수 있습니다. 
  • /bin/bash
    • 컨테이너를 실행시킴과 동시에 실행할 커맨드로, /bin/bash 는 bash 터미널을 사용(ON)하는 것을 의미합니다.

 

 

 

 

 

 

 

5) exec : 도커 컨테이너 내부에서 명령을 내리거나, 내부로 접속하는 커맨드 입니다. 

$ docker run -it -d --name demo2 ubuntu:18.04
$ docker ps

-d 옵션을 부여하면, background에서 실행시켜서 컨테이너에 접속 종료를 하더라도, 계속 실행 중이 되도록 하는 커맨드입니다. 여기서 ps를 수행하면 실행 중인 것을 알 수 있습니다. 

$ docker exec -it demo2 /bin/bash

동일하게 container 내부에 접속할 수 있는 것을 확인이 가능합니다. 

 

6) logs : 도커 컨테이너의 log를 확인하는 커맨드 입니다. 

예시 : demo3라는 이름으로 busybox 이미지를 백그라운드에서 도커 컨테이너로 실행하여, 초마다 현재 시간을 출력하는 명령어입니다. 

$ docker run --name demo3 -d busybox sh -c "while true; do $(echo date); sleep 1; done"

아래를 수행하면 다음과 같습니다. f 옵션은 계속 watch 하면서 출력하는 것 입니다. 

$ docker logs demo3
$ docker logs demo3 -f

로그 찍힌 예시

 

 

7) stop : 실행 중인 도커 컨테이너를 중단시키는 커맨드입니다. 

위에서 실행했던 docker들을 전부 stop 시키겠습니다. 

$ docker stop demo1
$ docker stop demo2
$ docker stop demo3

 

8) rm : 도커 컨테이너를 삭제하는 커맨드입니다. 

$ docker rm demo1
$ docker rm demo2
$ docker rm demo3

 

9) rmi : 도커 이미지를 삭제하는 커맨드 입니다. docker images를 실행해 어떤 것이 있는지 확인합니다. 저는 위에서 생성했던  ubuntu 이미지를 삭제하겠습니다. (tags까지 붙여야 지워지네요.)

$ docker rmi ubuntu:18.04

 

 

이제 기본적인 명령어를 다 수행해보았습니다. 이제 image를 다루는 것을 다음 글에서 다루어보겠습니다!


https://bit.ly/37BpXiC

 

패스트캠퍼스 [직장인 실무교육]

프로그래밍, 영상편집, UX/UI, 마케팅, 데이터 분석, 엑셀강의, The RED, 국비지원, 기업교육, 서비스 제공.

fastcampus.co.kr

 

* 본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성되었습니다.

 

 

 


profile

호돌찌의 AI 연구소

@hotorch's AI Labs

포스팅이 도움이 되셨다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!