1.安裝docker
wget http://ftp.riken.jp/Linux/fedora/epel/6/x86_64/epel-release-6-8.noarch.rpm
rpm -ivh epel-release-6-8.noarch.rpm
yum -y install docker-io
yum -y install lxc libcgroup
yum upgrade device-mapper-libs
2.開啓docker服務
/etc/init.d/docker start
ps -ef | grep docker
3.啓動報錯
relocation error: /usr/bin/docker: symbol dm_task_get_info_with_deferred_remove, version Base not defined in file libdev
解決方法:yum upgrade device-mapper-libs
http://yzg784534398.blog.51cto.com/9719002/1828159
4.Docker鏡像管理
docker pull centos #從docker.com獲取centos鏡像
docker images #查看本地都有哪些鏡像
docker tag centos szk #爲centos鏡像設置標籤爲szk,再使用docker images查看會多出來一行,改行的image id和centos的一樣
docker search (image-name) #從docker倉庫搜索docker鏡像,後面是關鍵詞
docker run -t -i centos /bin/bash #用下載到的鏡像開啓容器,-i表示讓容器的標準輸入打開,-t表示分配一個僞終端,要把-i -t 放到鏡像名字前面
當該鏡像發生修改後,我們可以把該鏡像提交重新生成一個新版本進行在本地。
docker ps #查看運行的容器
docker rmi centos #用來刪除指定鏡像, 其中後面的參數可以是tag,如果是tag時,實際上是刪除該tag,只要該鏡像還有其他tag,就不會刪除該鏡像。當後面的參數爲鏡像ID時,則會徹底刪除整個鏡像,連通所有標籤一同刪除
docker ps -a #查看所有容器,包括已經退出的。
5.基於已有鏡像的容器創建鏡像
運行docker run後,進入到該容器中,我們做一些變更,比如安裝一些東西,然後針對這個容器進行創建新的鏡像
docker commit -m "change somth" -a "somebody info" image_id (通過docker images獲取id) 新鏡像名字
例如:
docker commit -m "install httpd" -a "Aming" 2c74d574293f aming/centos
#這個命令有點像svn的提交,-m 加一些改動信息,-a 指定作者相關信息 2c74d這一串爲容器id,再後面爲新鏡像的名字
6.基於本地模板導入創建鏡像
模塊獲取地址:http://openvz.org/Download/templates/precreated
cat centos-6-x86_64-minimal.tar.gz |docker import - cnetos-6-x86_64
#使用一個centos6模板導入
docker images #查看導入文件
REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE
cnetos-6-x86_64 latest f4bd4fe45d33 About a minute ago 326.4 MB
docker save -o centos.tar docker.io/centos
#把現有鏡像,導出爲一個文件,前面的生成的文件名,後面的源鏡像
ll -h #生成的文件在當前目錄下
-rw-r--r-- 1 root root 195M 3月 17 14:56 centos.tar
我們還可以用該文件恢復本地鏡像:
docker load --input centos.tar 或者
docker load < centos.tar
docker push centos.tar
#可以把自己的鏡像傳到dockerhub官方網站上去,但前提是需要先註冊一個用戶,後續如果有需求再研究吧