docker安裝、使用學習

安裝
docker使用go語言編寫,用 cgroup 實現資源隔離,容器技術採用 LXC。
當前docker僅支持64位操作系統,yum環境若不支持,可以先安裝epel倉庫:

#rpm -Uvh http://dl.Fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm

# yum install docker
安裝 golang 環境
# yum install go
# go version
go version go1.2 linux/amd64
3.啓動
用系統管理啓動# systemctl start docker.service

開機自啓動
# systemctl enable docker.service
查看狀態
# systemctl status docker.service

docker.service - Docker Application Container Engine
Loaded: loaded (/usr/lib/systemd/system/docker.service; enabled)
Active: active (running) since Fri 2014-08-22 22:06:55 CST; 4min 23s ago
Docs: http://docs.docker.io
Main PID: 2177 (docker)
CGroup: /system.slice/docker.service
└─2177 /usr/bin/docker -d --selinux-enabled 

 

查看下載的image
#docker images
查看當前運行的docker容器
#docker ps -l
如何進入docker容器:
         a)查找容器實例pid
             #docker inspect --format "{{ .State.Pid }}" <container-id>
               <container-id>通過"#docker ps"可查詢到
         b)用nsenter進入容器
            #nsenter --target <$PID> --mount --uts --ipc --net --pid
       也可以sshd方式,但容器需要運行一個sshd進程。
       參考:http://www.oschina.net/translate/enter-docker-container?cmp
進入docker的腳本如下:
#!/bin/bash
im=$(docker images|grep gslb|awk '{print $3}')
echo $im
cid=$(docker ps -l|grep $im|awk '{print $1}')
pid=$(docker inspect --format "{{ .State.Pid }}" $cid)
nsenter --target $pid --mount --uts --ipc --net --pid

#啓動新docker實例
# docker run -d --net=host <image id> top -b

 

#停止docker實例
#docker stop <CONTAINER ID>
#刪除docker實例
#docker rm <CONTAINER ID> docke

#刪除image
# docker rmi <image name>
docker的image保存與加載
保存container爲本地壓縮文件
    $sudo docker save <REPOSITORY> >  yourname.tar
         這裏,REPOSITORY是image名稱,通過#docker images獲得。
       如何修改了內容,需要生成新的image,再導出image文件。方法如下:
        $sodu docker commit <CONTAINER ID>  <new image name>
       
導入別的機器上的container
    $sudo docker load < yourname.tar


 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章