2016-11-08 50 views
0

我正在使用google compute engine並想使用kubernetes 我已經爲我的機器創建了一個鏡像,而不使用docker。 我用的命令是是否有可能從debian映像製作docker鏡像

sudo gcimagebundle -d /dev/sda -o /tmp/ --log_file=/tmp/ansible.log 

它導致該圖像文件

6820b8b74dba0d115e3f9e0b969055ac6b67bc65.image.tar.gz 

是否有可能創建一個Dockerfile創建從圖像的碼頭工人的形象。

或者我是否必須從debian創建一個空的docker鏡像並安裝我的依賴關係?因爲我真的不喜歡再次安裝我所有的依賴項(這是一天的工作)

任何解決方案?

編輯: 試過這樣:

>> cat 6820b8b74dba0d115e3f9e0b969055ac6b67bc65.image.tar.gz | docker import - exampleimagelocal:new 
Error response from daemon: Error processing tar file(exit status 1): Unhandled tar header type 83 

回答

1

我不知道gcimagebundle,但如果它只是bundels在焦油中的所有文件,無需額外的元數據,這應該工作

FROM scratch 
ADD 6820b8b74dba0d115e3f9e0b969055ac6b67bc65.image.tar.gz/

但它會如果你有一個Dockerfile會更好,因爲這樣做很容易對圖像進行更改並且可以重現。

+0

小嗨@Julian,得到這個'cat my.image.tar.gz | docker import - exampleimagelocal:new 來自守護程序的錯誤響應:處理tar文件時出錯(退出狀態1):未處理的tar頭類型83' – WebQube

+0

什麼是完整的dockerFile? ADD justs將文件添加到泊塢窗圖像。你如何提取它? – WebQube

+0

COPY只添加文件,ADD可以提取它。它看起來像一個定製格式。也許嘗試提取它,然後複製它 – Julian

0

您可以用tar文件系統,然後

  • 您可以使用添加在dockerfile,像它之前已經說的,或
  • 可以docker import焦油

選項2在一步將是

tar -c * | docker import - minidebian:raw 

如果您創建一個'原始'圖像(沒有從tar文件的元數據),那麼你可以用一個簡單的dockerfile

FROM minidebian:raw 

LABEL description="Minimal Debian 8 image" 
MAINTAINER Ignacio Núñez Hernanz <[email protected]> 

CMD ["/bin/bash"] 

添加泊塢窗的元數據,並建立最終的圖像

docker build . -t minidebian:latest 

與本指南

https://ownyourbits.com/2017/02/19/creating-a-minimal-debian-container-for-docker/

採取

如果您需要創建Debian容器,可以按照該指南進行操作。它使用debootstrap

此外,還有已經制成的容器,你可以使用

  • 的一個導遊的講解(小!)

    搬運工拉ownyourbits/minidebian

  • 從Debian的

    官方那些

    搬運工拉的debian:傑西

    搬運工拉的debian:傑西纖薄#比傑西