안녕하세요. 메타클라우드 입니다.😁
쿠버네티스를 공부하면서 기본이 되는 도커🐳의 명령어를 정리하였습니다. 매일 도커를 사용하는게 아니다 보니 명령어를 까먹습니다... 다른 사이트에서 찾아보느니 제가 자주 사용하는 도커 명령어를 아예 정리해보았습니다.
Docker란 무엇인가?
Docker 기본 명령어를 확인하기 전에 Docker에 대하여 기본 지식은 이전에 포스팅을 참고 해주시기 바랍니다.
2020.09.07 - [ETC] - 도커(Docker)란 무엇인가?
Docker 기본 명령어
Docker에는 여러 명령어가 있지만 그중에서 사용을 많이 하는 명령어 13개만 정리했습니다. 나머지 명령어는 공식 홈페이지를 참고하시기 바랍니다. 😃
https://docs.docker.com/engine/reference/run/
1) 컨테이너 실행하기 (run)
docker run 명령어 뒤에 실행할 이미지를 적고 태그와 인자를 입력하면 됩니다.
docker run [option] <image name>:<tag> [<args>]
Docker 실행시 로컬에 이미지가 없으면 자동으로 이미지를 원격 저장소에서 가져옵니다. Docker의 이미지 주소 형식은 아래와 같습니다. Registry 주소는 도메인 주소인데 보통 생략합니다. 생략하게 되면 Default로 docker.io Registry를 사용합니다. TAG도 보통 생략하는데, 생략하게 되면 Dafault로 latest라는 TAG를 사용합니다.
<registry name>/<repository name>/<image name>:<tag>
# Default Registry Name : docker.io (docker.io 외에도 gcr.io (구글 클라우드 컨테이너 레지스트리) 등도 있습니다.)
# Default TAG : latest
테스트로 Docker Hub에 있는 귀여운 고래 컨테이너를 실행해보겠습니다. (https://hub.docker.com/r/docker/whalesay/)
docker run docker/whalesay cowsay MetaCloud
# docker/whalesay 는 docker.io/docker/whalesay:latest 랑 동일하며 아래 명령어로도 동일한 결과를 확인 할 수 있습니다.
docker run docker.io/docker/whalesay:latest cowsay MetaCloud
Docker를 실행할때 백그라운드로 실행할지 등 option을 적용 할 수 있습니다. 여러가지 option은 공식 홈페이지에서 확인 해보세요.
docker run 명령어 옵션 확인
https://docs.docker.com/engine/reference/commandline/run/
2) 컨테이너 조회하기 (ps, process status)
docker ps 명령어를 사용하면 현재 실행중인 컨테이너 리스트를 찾을 수 있습니다.
docker ps [OPTIONS]
조회해보니 whalesay 컨테이너는 리스트가 없습니다. 그렇다는건 docker run 명령어에 따로 옵션이 없으면 컨테이너는 한번 실행되고 바로 종료가 되는것입니다.
docker ps
컨테이너를 백그라운드로 실행하게 하는 -d 옵션을 주고 다시 docker ps 명령어로 확인해 보면 실행중인 컨테이너 리스트를 확인 할 수 있습니다. 백그라운드로 실행한 컨테이너는 nginx 입니다.
docker run -d nginx docker ps # 생성되는 CONTAINER ID는 사용자마다 다릅니다.
-a 옵션을 주면 그동안 실행하고 종료된 모든 컨테이너 리스트를 보여줍니다.
docker ps -a
docker ps 명령어 옵션 확인
https://docs.docker.com/engine/reference/commandline/ps/
3) 이미지 다운로드 (pull)
run으로 이미지를 바로 실행하지 않고 다운로드만 가능합니다.
docker pull [OPTIONS] <image name>:<tag>
우분투 이미지를 다운 받아 보겠습니다.
docker pull ubuntu
docker pull 명령어 옵션 확인
https://docs.docker.com/engine/reference/commandline/pull/
4) 이미지 조회하기 (images)
호스트에 다운로드 되어 있는 이미지 리스트를 확인 할 수 있습니다.
docker images [OPTIONS] <repository name>:<tag>
AWS EC2 instance에 다운로드된 컨테이너 이미지 리스트를 조회해봅니다.
docker images
docker images 명령어 옵션 확인
https://docs.docker.com/engine/reference/commandline/images/
5) 컨테이너 로그 조회하기 (logs)
컨테이너에서 출력되는 로그를 조회 할 수 있습니다.
docker logs [OPTIONS] <CONTAINER ID>
백그라운드로 실행한 nginx 컨테이너 ID로 조회해보겠습니다. (사용자 마다 ID 다름)
docker logs fc91ec059856
docker logs 명령어 옵션 확인
https://docs.docker.com/engine/reference/commandline/logs/
6) 컨테이너 종료하기 (stop)
실행중인 컨테이너를 종료 할 수 있습니다.
docker stop [OPTIONS] <CONTAINER ID>
백그라운드로 실행중인 nginx 컨테이너를 종료해보겠습니다.
docker stop fc91ec059856
docker stop 명령어 옵션 확인
https://docs.docker.com/engine/reference/commandline/stop/
7) 중단한 컨테이너 재시작하기 (start)
중료한 컨테이너를 다시 시작할 수 있습니다.
docker start [OPTIONS] <CONTAINER ID>
아까 종료한 nginx 컨테이너를 재시작 합니다. 동일한 컨테이너 ID로 실행됩니다.
docker start fc91ec059856
docker start 명령어 옵션 확인
https://docs.docker.com/engine/reference/commandline/start/
8) 실행중인 컨테이너 재시작하기 (restart)
실행중인 컨테이너도 재시작 할 수 있습니다.
docker restart [OPTIONS] <CONTAINER ID>
아까 종료했다가 다시 실행한 nginx 컨테이너를 재시작 해보겠습니다. (status 시간 확인)
docker restart fc91ec059856
docker restart 명령어 옵션 확인
https://docs.docker.com/engine/reference/commandline/restart/
9) 컨테이너에 명령하기 (exec)
실행중인 컨테이너에 명령을 내릴 수 있습니다. 추가로 설치한다거나 업데이트를 할때 사용합니다.
docker exec [OPTIONS] <CONTAINER ID> <COMMAND>
실행중인 nginx 컨테이너에 pakage update를 하고 wget을 설치하고 실행해보겠습니다.
docker exec fc91ec059856 sh -c 'apt update' docker exec fc91ec059856 sh -c 'apt install -y wget' docker exec fc91ec059856 wget localhost
docker exec 명령어 옵션 확인
https://docs.docker.com/engine/reference/commandline/exec/
10) 컨테이너에 파일 복사하기 (cp, copy)
컨테이너를 실행하는 호스트 ↔ 컨테이너 내부끼리 파일을 복사 할 수 있습니다.
docker cp [OPTIONS] <CONTAINER ID>:SRC_PATH DEST_PATH docker cp [OPTIONS] SRC_PATH <CONTAINER ID>:DEST_PATH
AWS EC2 instance 호스트의 passwd 파일을 nginx 컨테이너 내부로 복사하고 실행해보겠습니다.
docker cp /etc/passwd fc91ec059856:/usr/share/nginx/html/. docker exec fc91ec059856 curl localhost/passwd
docker cp 명령어 옵션 확인
https://docs.docker.com/engine/reference/commandline/cp/
11) 컨테이너에 접속하기 (-it, interactive-tty)
컨테이너를 실행하면서 또는 실행중인 컨테이너에 접속 할 수 있습니다.
docker run -it <IMAGE>:<TAG> bash docker exec -it <CONTIANER ID> bash
실행중인 nginx 컨테이너에 접속하고 빠져 나와보겠습니다.
docker exec -it fc91ec059856 bash exit
-it 옵션을 사용하는 명령어 확인
https://docs.docker.com/engine/reference/commandline/run/
https://docs.docker.com/engine/reference/commandline/exec/
12) 컨테이너 삭제하기 (rm, remove)
종료된 컨테이너를 완전히 삭제 할 수 있습니다. 삭제하면 더이상 컨테이너를 재시작 할 수 없습니다.
docker rm [OPTIONS] <CONTAINER ID>
종료된 컨테이너 중에서 hello-world 이미지로 실행한 컨테이너를 삭제해보겠습니다.
docker rm a55998fdf055
docker rm 명령어 옵션 확인
https://docs.docker.com/engine/reference/commandline/rm/
13) 이미지 삭제하기 (rmi, remove image)
호스트에 다운로드 된 컨테이너 이미지를 삭제 할 수 있습니다.
docker rmi [OPTIONS] <image id>
hello-world 컨테이너 이미지를 삭제해보겠습니다.
docker rmi d1165f221234
docker rmi 명령어 옵션 확인
https://docs.docker.com/engine/reference/commandline/rmi/
이상으로 도커 기본 명령어 정리 포스팅을 마치겠습니다. 😉
'DevOps > Environment' 카테고리의 다른 글
윈도우10 WSL에 Docker 설치하기 (0) | 2020.12.26 |
---|---|
Visual Studio Code 설치하기 (0) | 2020.09.06 |
윈도우10에서 우분투 설치하기 (0) | 2020.09.01 |