ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Docker]
    카테고리 없음 2021. 3. 4. 18:23

    리눅스 컨테이너의 미래The Future of Linux Container라는 제목을 가진 이 발표에서 솔로몬 하이크는 docker라는 어려운 명령어로 Hello world를 출력하는 아주 기묘한 데모를 시연한다.

     

    그런데 굳이 이렇게 안하고 그냥 echo hello world 해도 결과물은 똑같다 ! ( 겉보기에는 )

    차이점은 echo Hello world 가 실행되는 환경이 다르다는 것이다.

     

    $ docker run busybox echo hello world

    hello world

    위의 경우엔, busybox 라는 이미지위( 환경 )에서 컨테이너가 돌고, 이 안에서 명령어를 실행한다.

    $ echo hello world

    hello world

    반면에 위의 경우엔, 호스트 환경 ( 루트 파일 시스템 ) 에서 명령어가 실행된다.

     

    $ docker run -it ubuntu:latest bash

    라는 명령어를 실행하면 이런 화면을 만날 수 있다. 하나씩 뜯어보자

     

    • $ docker run -it ubuntu:latest bash : docker 를 이용해서 ubuntu:latest 라는 이미지를 컨테이너로 생성해라. 후에 bash 를 실행해라. ( 이때 컨테이너 이름은 랜덤으로 부여된다 )
    • --it : 사실 -i -t 라는 옵션인데 리눅스에서 한글자 명령어의 경우엔 붙여쓸 수 있어서 간단하게 -it로 많이 사용한다. 이 옵션을 사용하면 실행된 bash 에 입출력을 할 수 있다. 이게 무슨말이냐면...

    이렇게 -it 라는 옵션을 빼고 bash 를 실행시키면 컨테이너는 진짜 단순히 bash 를 '실행만' 시키고 바로 종료한다.

    그래서 bash 를 계속 살려두면서 입출력을 하고싶으면 -it 라는 옵션을 써줘야 한다.

    • Unable to find image 'ubuntu:latest' locally : 난 ubuntu:latest 라는 이미지를 처음깔기 때문에 local에서 찾을 수 없다고 뜬다. 그리고 밑에보면 자동으로 해당 image 를 pull 해서 가져오는것도 확인할 수 있다.

    Pull

     

    만약 image 로 컨테이너를 생성하지않고 단순히 image 만 pull 하고싶은경우

    $ docker pull ubuntu:latest

    이렇게 사용하면 된다.

     

    image 확인

     

    내 docker 에 깔려있는 images 를 확인하고싶으면 아래 명령어를 이용하면 된다.

    $ docker images

    우리가 방금 설치한 ubuntu:latest 이미지에서 커널과 배포판 정보를 확인해보면

    그렇단다.

     

    이제 다른 이미지인 centOs 에서 정보를 확인해보자

    이렇단다.

     

    먼저, 배포판이 다르다는 것을 알 수 있다. 고로 위에서 실행한 2개의 docker 컨테이너는 분명히 다른 환경에서 실행하고 있다.

     

    그러나 uname -a 의 출력 결과는 동일하다. 따라서 서로 다른 환경(이미지)에서 컨테이너가 실행되었음에도 커널은 같은 것을 알 수 있다. 

    댓글

Designed by Tistory.