테키테크 TEKITECH

[Docker] 도커 엔진 실행부터 이미지로 컨테이너 실행까지 (MacOS+CLI 환경) - 1. Docker Image(Ubuntu) 다운로드 본문

Tech/Ops

[Docker] 도커 엔진 실행부터 이미지로 컨테이너 실행까지 (MacOS+CLI 환경) - 1. Docker Image(Ubuntu) 다운로드

TEKI 2021. 9. 6. 16:24

실습 계획

1. Docker Image(Ubuntu) 다운로드
    1-1. 도커 엔진 실행
    1-2. Docker Image(Ubuntu) 다운로드 1차 시도
    1-3. Docker Image 지우기
    1-4. Docker Image(Ubuntu) 다운로드 2차 시도

2. Docker Container 생성
3. Docker Container 사용하기

 


 

로컬(MacOS)에 설치한 도커 엔진에서 간단한 실습을 해보려고 한다.
Docker Desktop for Mac은 UI를 지원하지만 이번에는 가능한 한 CLI환경을 사용할 것이다.

 

1. 도커 엔진 실행

도커를 실행하기 전에 도커 명령어를 입력하려고 하면 아래와 같은 오류 메시지가 뜬다.

Is the docker daemon running?

지금은 도커 엔진이 꺼져있는 상태이기 때문에 도커 엔진을 실행시켜주어야 한다.

MacOS에서 도커는 UI를 지원하기 때문에 도커 엔진을 실행하려면 클릭만 하면 된다.
도커를 잘 실행시키고 나면 아래 명령어로 컨테이너 목록을 확인할 수 있다.

docker ps -a

-a 옵션을 주면 지금 실행중인 컨테이너를 포함한 모든 컨테이너들을 확인할 수 있다.
지금 도커에는 연습삼아 올려봤던 컨테이너들이 보인다.
STATUS가 모두 Exited인 것을 보면 실행중인 컨테이너는 없다는 걸 알 수 있다.

도커 컨테이너 확인하기

 

2. Docker Image(Ubuntu) 다운로드 1차 시도

docker pull [도커 이미지 이름 또는 ID]:[이미지 버전]

위와 같이 docker pull을 사용해서 이미지를 다운받을 수 있다.
우분투 컨테이너를 사용할 계획이기 때문에 ubuntu를 지정해주었고,
이미지의 버전을 지정해서 받을 수 있지만 최신 버전으로 받을 거기 때문에 버전을 지정하지 않고 아래처럼 시도했다.

docker pull ubuntu

그러면 이렇게 된다.

이미지가 있는 상태에서 동일한 이미지 pull을 시도해보았다


이미 땡겨온 이미지가 내 도커에 있고, 이미 최신 버전이기 때문에 특별히 바뀐 것이 없다는 뜻이다.
아까 잠깐 이미지 pull을 테스트해보면서 받았던 이미지이다.
제대로 실습해보기 위해서 이미지를 지우고 다시 받아보자.

 

3. Docker Image 지우기

docker images 명령어로 내 도커에 있는 도커 이미지를 확인해보자.


docker101tutorial과 alpine/git는 처음 Docker Desktop for Mac을 설치할 때 튜토리얼을 따라하면 설치할 수 있다.
그리고 내가 찾던 ubuntu도 보인다.

이제 우분투 이미지를 지워보자.
만약 바로 이미지를 지우려고 하면 이런 오류가 발생한다.

왜냐하면 아까 컨테이너를 확인할 때 보았던 것처럼 우분투 이미지로 생성한 컨테이너가 있기 때문이다.
이렇게 지우려는 이미지를 사용해서 만든 컨테이너가 있으면 도커 이미지는 그냥 지워지지 않는다.
이런 경우, 두 가지 해결 방법이 있다.

  1. 강제로 이미지를 삭제
    컨테이너만 사용하고 이미지는 더 이상 필요하지 않은 경우, -f 옵션을 주어 이미지를 강제로 지우면 된다.
    docker rmi -f [이미지 이름 또는 ID]​
  2. 관련 컨테이너를 먼저 지우고 이미지를 삭제
    컨테이너를 지운다.
    docker rm [컨테이너 이름 또는 ID]

    그리고 다시 이미지를 지우면 잘 지워진다.
    docker rmi [이미지 이름 또는 ID]

컨테이너는 곧 다시 만들거라 2번 방법으로 다 지워주었다.

 

 

4. Docker Image(Ubuntu) 다운로드 2차 시도

2번에서 시도했던 우분투 이미지 다운로드를 다시 시도해보면 아까와 다르게 Pull complete 메시지를 볼 수 있다!


도커 이미지 목록에 새로운 우분투 이미지가 보이면 끝!

 


 

새로 알게 된 내용

Image를 다운로드할 때, 없으면 새로 다운로드하고, 있으면 최신 버전으로 업데이트한다.

Container를 만든 Image는 바로 삭제할 수 없다
어떤 컨테이너와 관련이 있는지 알려주기 때문에 필요에 따라 적절하게 삭제하여 관리할 수 있다.

 

막혔던 문제와 해결 방법

MacOS에서 CLI를 통한 도커 엔진 실행
도커는 기본적으로 리눅스 환경에서 사용가능하다.
Docker Desktop for Mac을 따로 지원해서 로컬 환경에서는 이걸 설치했다.
이렇게 하면 UI를 지원해주어 편리한 점도 있었지만, UI를 사용하지 않고 CLI에서 도커를 실행시키는 방법이 궁금했다.
DOCKER COMMUNITY FORUMS에서 몇 가지 방법을 제시해주었는데 pinata는 더 이상 지원하지 않는다는 것 같다.

 

더 공부해볼 문제

이미지와 컨테이너 개수가 늘어날수록 관리가 정말 어려워질 것 같다.
이런 문제를 해결하기 위해서 쿠버네티스 등 많은 도구를 사용한다는데,
히스토리를 어떻게 관리하면서 사용해야할 지 그리고 어떤 도구를 사용하면 어떤 도움을 받을 수 있을 지 공부할 필요가 있겠다.

 

고민해볼 문제

X

 

오늘의 생각

도커는 리눅스 기반이라고 배웠다.
UI기반이 아닌 CLI기반으로 실습해서인지 비슷한 점을 많이 느꼈다.

반응형
Comments