docker

安裝docker
yum install docker-io -y


安裝內核模塊
yum install kernel-devel


如果啓動報錯  就安裝以下模塊
yum upgrade device-mapper-libs


修改kernel內核
vi /usr/src/kernels/2.6.32-642.3.1.el6.x86_64/.config
添加修改CONFIG_DM_THIN_PROVISIONING=y


安裝febootstrap
yum -y install febootstrap


使用febootstrap製作centos鏡像
febootstrap -u http://mirrors.163.com/centos/6.8/updates/x86_64/ -i centos-release -i yum -i iputils -i bash -i wget -i tar -i which centos68 /mydata/docker/ http://mirrors.163.com/centos/6.8/os/x86_64/
febootstrap -i centos-release -i bash -i wget -i yum -i iputils -i iproute -i man -i vim-minimal -i openssh-server -i openssh-clients centos65 centos6-p_w_picpath http://mirrors.aliyun.com/centos/6/os/x86_64/

打包成docker鏡像centos68-bash是名字
cd  /mydata/docker/
tar -c .|docker import - centos68-bash
cd centos6-p_w_picpath && tar -c .|docker import - centos65-base



創建一個docker:    
docker run -i -h="test" --name one  -t centos /bin/bash
docker run -i -p 50080:80 -p 50022:22 --name one -v /mydata/python:/var -t centos68-bash /bin/bash


把容器和父鏡像一起生成一個新的鏡像
docker commit 5c437129b664 centos65-base:sshd


打包鏡像
docker save centos65-base:sshd1 >/mydata/docker/save/centos65-base:sshd1.tar

導入鏡像
docker load < centos65-base:sshd1.tar


後臺啓動 and 運行/root/run.sh
docker run -d -p 10080:80 -p 10022:22 -v /etc/yum.repos.d/:/etc/yum.repos.d/ --name three -t centos65-base:sshd /root/run.sh


進入容器:docker attach --sig-proxy=false one



停止所有的container,這樣才能夠刪除其中的p_w_picpaths:
docker stop $(docker ps -a -q)


如果想要刪除所有container的話再加一個指令:
docker rm $(docker ps -a -q)

刪除單個容器
docker rm d39b4b73764d


查看當前有些什麼p_w_picpaths
docker p_w_picpaths


刪除p_w_picpaths,通過p_w_picpath的id來指定刪除誰
docker rmi <p_w_picpath id>


想要刪除untagged p_w_picpaths,也就是那些id爲<None>的p_w_picpath的話可以用
docker rmi $(docker p_w_picpaths | grep "^<none>" | awk "{print $3}")


要刪除全部p_w_picpath的話
docker rmi $(docker p_w_picpaths -q)



從container中拷貝文件,當container已經關閉後,在裏面的文件還可以拷貝出來。  
docker cp 8bb0e258aefb:/etc/hosts /tmp
把容器中的/etc/hosts拷貝到/tmp目錄下


Usage: docker run [OPTIONS] IMAGE[:TAG] [COMMAND] [ARG...]  
Run a command in a new container  
-a=map[]: 附加標準輸入、輸出或者錯誤輸出  
-c=0: 共享CPU格式(相對重要)  
-cidfile="": 將容器的ID標識寫入文件  
-d=false: 在後臺運行容器,並且打印出容器ID  
-e=[]:設置環境變量  
-h="": 容器的主機名稱  
-i=false: 保持輸入流開放即使沒有附加輸入流  
-privileged=false: 給容器擴展的權限  
-m="": 內存限制 (格式:<number><optional unit>, unit單位 = b, k, m or g)  
-n=true: 允許鏡像使用網絡  
-p=[]: 匹配鏡像內的網絡端口號  
-rm=false:當容器退出時自動刪除容器 (不能跟 -d一起使用)  
-t=false: 分配一個僞造的終端輸入  
-u="": 用戶名或者ID  
-dns=[]: 自定義容器的DNS服務器  
-v=[]: 創建一個掛載綁定:[host-dir]:[container-dir]:[rw|ro].如果容器目錄丟失,docker會創建一個新的卷  
-volumes-from="": 掛載容器所有的卷  
-entrypoint="": 覆蓋鏡像設置默認的入口點  
-w="": 工作目錄內的容器  
-lxc-conf=[]: 添加自定義-lxc-conf="lxc.cgroup.cpuset.cpus = 0,1"
-sig-proxy=true: 代理接收所有進程信號(even in non-tty mode)  
-expose=[]: 讓你主機沒有開放的端口  
-link="": 連接到另一個容器(name:alias)  
-name="": 分配容器的名稱,如果沒有指定就會隨機生成一個  
-P=false: Publish all exposed ports to thehost interfaces 公佈所有顯示的端口主機接口


docker pull <鏡像名:tag> #從官網拉取鏡像  
docker search <鏡像名> #搜索在線可用鏡像名
docker kill <容器名or ID> #殺掉某個容器

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