m1 맥북에 도커 설치하기
brew install --cask docker
Launchpad에 있는 도커 아이콘 클릭
Accept 시 도커 실행 성공!
설치 확인하기
docker version
Client 와 Server 정보가 정상적으로 출력되었다면 설치가 완료된 것이다.
특이한 점은 클라이언트와 서버로 나뉘어져 있는 것이다. 도커는 하나의 실행 파일이지만, 실제로 클라이언트와 서버 역할을 각각 할 수 있다. 도커 커맨드를 입력하면 도커 클라이언트가 도커 서버로 명령을 전송하고 결과를 받아 터미널에 출력해 준다.
기본값이 도커 서버의 소켓을 바라보고 있기 때문에, 사용자는 의식하지 않고 마치 바로 명령을 내리는 것 같은 느낌을 받는다. 이러한 설계가 mac이나 windows의 터미널에서 명령어를 입력했을 때 가상 서버에 설치된 도커가 동작하는 이유다.
컨테이너 실행하기
도커를 실행하는 명령어는 다음과 같다.
docker run [OPTIONS] IMAGE[:TAG|@DIGEST] [COMMAND] [ARG...]
다음은 자주 사용하는 옵션을 나타낸 표이다.
옵션 | 설명 |
-d | detached mode, 흔히 말하는 백그라운드 모드 |
-p | 호스트와 컨테이너의 포트를 연결 (포워딩) |
-v | 호스트와 컨테이너의 디렉토리를 연결 (마운트) |
-e | 컨테이너 내에서 사용할 환경변수 설정 |
–name | 컨테이너 이름 설정 |
–rm | 프로세스 종료시 컨테이너 자동 제거 |
-it | -i와 -t를 동시에 사용한 것으로 터미널 입력을 위한 옵션 |
–link | 컨테이너 연결 [컨테이너명:별칭] |
ubuntu 16.04 container
ubuntu 16.04 컨테이너를 생성하고 내부로 들어가 보자.
docker run ubuntu:16.04
1. run 명령어를 사용하면 사용할 이미지가 저장되어 있는지 먼저 확인한다.
2. 없다면 다운로드(pull)를 한 후 컨테이너를 생성(create)하고 시작(start)한다.
3. 이것은 별다른 명령어를 전달하지 않았기 때문에 컨테이너를 생성한 후 곧바로 종료한다. 컨테이너는 프로세스이기 때문에 실행 중인 프로세스가 없으면 컨테이너는 종료된다.
/bin/bash 명령어를 입력하여 컨테이너 실행하기
docker run --rm -it ubuntu:16.04 /bin/bash
컨테이너 내부에 들어가기 위해 bash 쉘을 실행하고 키보드 입력을 위해 -it 옵션을 준다.
-i 옵션과 -t 옵션은 같이 쓰이는 경우가 매우 많다.
이 두 옵션은 컨테이너를 종료하지 않은채로, 터미널의 입력을 계속해서 컨테이너로 전달하기 위해서 사용한다.
따라서, -it 옵션은 특히 컨테이너의 쉘(shell)이나 CLI 도구를 사용할 때 매우 유용하게 사용된다.
추가적으로 프로세스가 종료되면 컨테이너가 자동으로 삭제되도록 --rm 옵션을 추가한다.
--rm 옵션은 컨테이너를 일회성으로 실행할 때 주로 쓰인다.
컨테이너가 종료될 때 컨테이너와 관련된 리소스(파일 시스템, 볼륨)까지 깨끗이 제거해준다.
* 추가적인 docker run 커맨드
https://www.daleseo.com/docker-run/
이전에 해당 이미지를 다운 받았기 때문에 이미지를 다운로드 하지 않고 바로 실행되었다. cat /etc/issue와 ls를 실행해보면 ubuntu 리눅스인 것을 알 수 있다.
exit으로 bash 쉘을 종료하면 컨테이너도 같이 종료된다.
이것으로 도커를 설치하여 간단한 컨테이너를 생성하여 접속하고 삭제까지 해보았다.
다음에는 기본 명령어에 대해 알아보도록 하자.
* 참고
https://subicura.com/2017/01/19/docker-guide-for-beginners-2.html
https://shanepark.tistory.com/194
https://www.daleseo.com/docker-run/
'Infra > Docker' 카테고리의 다른 글
도커를 배우자03 - 기본 명령어 (0) | 2021.11.18 |
---|---|
도커를 배우자01 - 도커란? (0) | 2021.11.16 |
댓글