在32位ubuntu中安裝docker並且成功啓動容器

在ubuntu下安裝docker:

按照http://dockerpool.com/static/books/docker_practice/install/ubuntu.html的說明,根據步驟安裝最新版本的docker。

安裝好docker以後,如果你想啓動一個容器,則需要首先在本地創建鏡像文件,然後才能利用創建好的鏡像文件去啓動容器。

創建鏡像文件:

方法①:

sudo docker pull ubuntu:12.04 ——從官方倉庫註冊服務器下載標記爲12.04的鏡像文件。

有時候官方倉庫註冊服務器下載較慢,可以從其他倉庫下載。從其它倉庫下載時需要指定完整的倉庫註冊服務器地址。例如sudo docker pull dl.dockerpool.com:5000/ubuntu:12.04

方法②:

通過修改已有的鏡像,並利用docker commit提交更新後,再利用修改後的鏡像啓動容器。具體可以參考:http://dockerpool.com/static/books/docker_practice/image/create.html

方法③:利用Dockerfile來創建鏡像。

具體參考http://dockerpool.com/static/books/docker_practice/image/create.html

a、創建一個目錄和Dockerfile文件,命令如下:

mkdir sinatra

cd sinatra

touch Dockerfile

b、在vim中打開Dockerfile文件,並且按照下面的步驟編寫Dockerfile文件:

#This is a comment

FROM ubuntu:12.04

MAINTAINER Docker Newbee [email protected]

RUN apt-get –qq update

RUN gem install sinatra

注意:Dockerfile 基本的語法是

  • 使用#來註釋
  • FROM 指令告訴 Docker 使用哪個鏡像作爲基礎
  • 接着是維護者的信息
  • RUN開頭的指令會在創建中運行,比如安裝一個軟件包,在這裏使用 apt-get 來安裝了一些軟件

c、 編寫完成Dockerfile以後,可以使用docker build來生成鏡像。命令如下:

sudo docker build –t=”ouruser/sinatra:v2” .

其中,-t標記來添加tag,指定新的鏡像的用戶信息。”.”是Dockerfile所在的路徑,表示當前路徑,也可以指定其他路徑。

d、利用新創建的鏡像來啓動一個容器,運行bash:

sudo docker run –i –t ouruser/sinatra:v2 /bin/bash

此時,出現錯誤,錯誤信息是:execformat error 。百度了好長時間,終於知道原因了。原來是我安裝的docker是32位的,但是不管通過哪種方法創建的鏡像卻都是64位的,所以錯誤的原因是image不匹配造成的。

所以,如果想在32位的Docker基礎上運行Ubuntu的Image那要求Ubuntu的image也必須是32位。這就需要製作32位Ubuntu的Image。

由於Docker Hub Registry上面的鏡像都是64位的,所以這裏需要自己做一個Ubuntu的鏡像,這裏使用import命令,該命令的官方解釋爲:Create  anew filesystem image from the contents of a tarball。這裏使用openVZ的模板來創建,openVZ模板的下載地址爲:http://openvz.org/Download/template/precreated ,在該頁面中有下面的Ubuntu模板可選擇:


而我們需要下載的是32位的鏡像,即圖中紅線所圈出來的版本。

下載好以後,利用如下命令創建鏡像:catubuntu-14.04-x86-minimal.tar.gz | sudo docker import – ubuntu:14.04。

創建好以後,利用docker images命令查看是否有此鏡像存在。如果存在,則可以利用此鏡像啓動一個容器了,命令爲:sudo docker run –i –t ubuntu:14.04 /bin/bash。

發佈了51 篇原創文章 · 獲贊 41 · 訪問量 31萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章