목표
도커를 사용하기 위한 사용 방법에 대해 알아보겠습니다.
목차 클릭하면 해당 목차로 이동합니다.
개요
앞선 포스팅에서 도커의 개념에 대해 알아보았습니다.
참고 : 2021.09.02 - [DevOps/Docker] - [Docker] 도커(Docker)란? 도커의 개념, 장점
도커가 왜 좋은지 알았는데, 어떻게 사용해야할까요? 작동 원리를 먼저 알고 넘어가는 것도 좋지만 기본적인 명령어를 사용해보면서 몸으로 느껴보고 후에 작동원리를 정확히 짚고 넘어가겠습니다.
따라서, 이번 포스팅에서는 도커의 기본적인 작동 방법에 대해서 알아보도록 하겠습니다.
Docker 설치하기
우선 도커를 사용하기 위해서는 설치를 해야합니다. 다음 URL을 통해서 도커 홈페이지에 접속합니다.
상단 메뉴에 "Develops - Docs"로 이동하여 "Download and Install"을 눌러 환경에 맞게 설치합니다.
제대로 설치가 되었는지 확인하기 위해서 Win + R 을 눌러 cmd(명령 프롬포트)를 실행합니다. 다음과 같은 명령어를 입력합니다.
docker images
에러가 발생하지 않고 무언가 뜬다면 정상적으로 설치가 완료된 것입니다.
이미지 설치하기
이후 원하는 S/W가 설치된 컨테이너를 찾아서 설치해야합니다. 다음 URL을 통해서 hub.docker에 접속합니다.
오른쪽 상단에 explore로 진입해 왼쪽 상단의 container를 선택합니다.
여기서 원하는 S/W가 설치된 컨테이너를 설치할 수 있습니다. 저는 아파치를 설치하기 위해 검색해보겠습니다.
apache를 검색하게 되면 이렇게 뜨게됩니다. 아파치의 이미지 이름은 httpd였습니다. 도커에서 인증한 Official Image 표시가 되어있습니다. 클릭해서 안의 내용을 확인해봐도 되고, 이름을 통해서 pull을 할 수 있습니다. 다시 CMD(명령 프롬포트)를 키고 다음과 같은 명령어를 작성해서 이미지를 가져옵니다.
docker pull pttpd //이미지 설치
docker pull pttpd:tags // 원하는 tag 확인
설치가 잘 되었는지 확인하려면 도커를 설치하고 나서 사용했던 명령어인 "docker images"를 사용하면 됩니다.
참고로, 두 번째 줄과 같이 태그를 붙여서 해당 버전을 설치할 수 있습니다.
컨테이너 실행·정지·확인 등 기본 명령어
이미지를 설치했기 때문에 아파치 웹서버 이미지를 담은 컨테이너를 실행해야합니다. 컨테이너를 실행하는 명령어 형식은 다음과 같습니다.
docker run [옵션] 이미지 [명령] // 컨테이너 실행
그냥 docker run httpd 를 할 수도 있지만, 이렇게 되면 컨테이너의 이름이 랜덤으로 배정되기 때문에 관리가 쉽지 않습니다. 또한, 한 개의 이미지로 여러 개의 컨테이너를 생성할 수 있기 때문에 이름을 정해줘야합니다. 이름을 정하는 옵션은 다음과 같습니다.
docker run --name 이름 이미지 // 컨테이너의 이름을 정해주고 실행
해당 컨테이너가 정상적으로 실행되었는지 다음 명령어를 통해 알 수 있습니다.
docker ps // 실행중인 컨테이너 확인
실행중인 컨테이너를 정지하는 명령어는 다음과 같습니다.
docker stop [옵션] 컨테이너이름(아이디) // 실행중인 컨테이너 정지
참고로 정지된 컨테이너를 확인하려면 ps 명령어에 옵션을 추가해야합니다.
docker ps -a // 정지된 컨테이너 확인
이렇게 정지된 컨테이너를 다시 실행하려면 어떻게 할까요?
docker start 컨테이너이름 // 정지된 컨테이너 재시작하기
실행된 컨테이너에 접속하고 어떤 일이 발생하는지 로그를 확인해야합니다. 로그를 확인하는 것은 다음과 같습니다.
docker logs 컨테이너이름 // 실행중인 컨테이너 로그 확인하기
docker f- logs 컨테이너이름 // 계속 로그를 확인하고 싶을때 -f 옵션추가
계속 로그를 확인하면서 추적하고 싶다면 -f 옵션을 추가합니다.
컨테이너가 계속 실행되고 쌓여있다면 관리하기도 힘들고 리소스가 낭비될 가능성이 있습니다. 다음 명령어로 컨테이너를 삭제합니다.
docekr rm 컨테이너이름 // 컨테이너삭제
당연히, 컨테이너를 삭제하려면 먼저 stop 명령어를 통해서 컨테이너를 정지 해야합니다.
물론 --force 옵션을 통해서 실행중인 컨테이너를 강제로 삭제하는 방법이 있지만 당연히 권장하지 않습니다.
컨테이너가 아닌 이미지를 삭제하려면 다음과 같은 명령어를 사용합니다.
docker rmi 이미지이름 // 이미지 삭제
그냥 봐도 rm에 이미지(image)의 i를 붙인 모양이네요. 당연히 이미지를 사용중인 컨테이너가 있을 경우 삭제되지 않습니다.
정리
도커를 설치하고 기본적인 명령어에 대해서 다뤘습니다. 저번 포스팅에서 기본적인 내용을 다뤘기 때문에 이번 포스팅에서는 생략하고 명령어 위주로 다뤘습니다. CLI가 익숙해서 주로 CLI로 작업했지만, GUI로도 확인할 수 있어서 더 편하게 사용할 수 있는 것 같습니다. 다음 포스팅에서는 작동원리에 대해서 다뤄보겠습니다.
본 포스팅은 유튜브 생활코딩 도커 강의를 참고했습니다.
주소 : https://www.youtube.com/watch?v=Ps8HDIAyPD0&list=PLuHgQVnccGMDeMJsGq2O-55Ymtx0IdKWf
'DevOps > Docker' 카테고리의 다른 글
[Docker] 도커 에러 "Error response from daemon: manifest for ..." 해결법 (0) | 2021.09.04 |
---|---|
[Docker] 도커(Docker)란? 도커의 개념, 장점, 구조 (1) | 2021.09.02 |