docker image rootfs 만들기

category 서버/리눅스 서버 2019. 12. 20. 19:45

안녕하세요? 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 에서 영감을 받은 글입니다.


감사합니다.






댓글을 달아 주세요

  1. miumida 2020.01.22 16:01

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