본문 바로가기
서버/리눅스 서버

docker image rootfs 만들기

by 도정진 ㅋㅋ잠자 2019. 12. 20.

안녕하세요? docker hub에 있는 이미지를 다운 받아서 사용해보려고 스크립트를 하나 만들었습니다.


현재 docker 가 되지 않는 제품이 이 방법을 이용하면 조금 이나마 해소를 하실 수 있을 것 같습니다.


docker 이미지의 구조는 base 운영체제 이미지를 제외한 변경분만 추가로 받게 되어 있는 overayfs 등을 활용합니다. 즉, base 이미지는 읽기 전용으로 받아두고 해당 운영체제를 사용하여 만들어진 이미지들은 한 이미지를 사용하고 추가로 변경분만 사용하는 형태로 구성되어 있습니다.


miconnector 의 경우 AoL 에서 구동할 때, 이미지를 끄집어 내어 native 환경으로 구동을 했었는데요. 일단 시작합니다.


wget https://github.com/djjproject/android_over_linux/raw/master/aolothercommand/download-docker-image-rootfs.sh -O /usr/local/bin/dockerpull


chmod a+x /usr/local/bin/dockerpull


참고로 docker pull 이 아니라 dockerpull 입니다 ㅎㅎ


상기처럼 설치를 하고 miconnector 를 받아보겠습니다.


docker hub 에서 찾아보면 아래와 같습니다.


명령어는 아래와 같습니다.


dockerpull [path] [image_name:tag]


root@AOL-Debian:~# dockerpull /opt/miconnector fison67/mi-connector-arm:latest

Downloading 'fison67/mi-connector-arm:latest@latest' (37 layers)...


######################################################################## 100.0%


######################################################################## 100.0%


######################################################################## 100.0%


######################################################################## 100.0%


######################################################################## 100.0%


######################################################################## 100.0%

######################################################################## 100.0%

######################################################################## 100.0%

######################################################################## 100.0%

######################################################################## 100.0%

Download of layers into '/opt/miconnector_tmp' complete.
Extract RootFS into '/opt/miconnector' complete.


대략적으로 dockerfile 을 참고해 보면 컨테이너 실행 시, 하는 작업들을 알 수 있습니다.


miconnector 의 경우 아래와 같습니다.


root@AOL-Debian:/opt/miconnector# ls

bin  boot  config  dev etc  home  lib media  mnt  opt  proc  root  run  sbin srv  sys  tmp  usr  var


root@AOL-Debian:/opt/miconnector# usr/src/app/bin/www 

2019-12-20 07:44:53 [] info: WebSocket init

2019-12-20 07:44:55 [] info: Initiallize Ping Processor

2019-12-20 07:44:55 [] info: ********************************

2019-12-20 07:44:55 [] info: Mi Connector Version: 0.0.4.24

2019-12-20 07:44:55 [] info: ********************************

2019-12-20 07:44:55 [] error: Port 30000 is already in use

root@AOL-Debian:/opt/miconnector# 


필요한 파일들만 잘 뽑아내어 사용하시면 될 것 같습니다.


최근의 linux deploy 에서 영감을 받은 글입니다.


감사합니다.







댓글2

  • miumida 2020.01.22 16:01

    글 잘 보고 따라해봤습니다:-)
    다운로드는 완료됐다고 떴는데 extract 완료는 안 뜨는데 혹시 확인해봐야하는 부분이 있을까요?
    답글

    • 성공하셨지 않습니까?

      혹시 성공하지 못하셨다면, 풀 로그를 한번 올려주시면 검토해보겠습니다.

      이게 제가 임의로 약간 수정한 스크립트라 특정 상황에서 안되는 문제가 있을 수 있습니다.