Docker的鏡像是建立容器的基礎,相似虛擬機的快照,能夠理解爲是一個面向Docker容器引擎的只讀模板,好比一個鏡像能夠是一個完整的centos操做系統,也能夠是一個安裝了MySQL的應用程序,稱之爲一個鏡像。
鏡像文件用戶能夠本身建立和更新現有鏡像,也能夠從網上下載已經作好的應用鏡像直接使用。docker
容器是鏡像的另外一個運行實例,是獨立運行的一個或一組應用以及他們所必須的運行環境,包括文件系統、系統庫類、shell環境等。鏡像是隻讀模板,而容器會給這個只讀模板一個額外的可寫層。shell
倉庫是用來集中存放鏡像的地方,當本身建立了鏡像後,可使用push命令將它上傳到公共倉庫(Public)或者私有倉庫(Private),這樣,當其餘機器想要使用時,直接下載下來便可使用。apache
docker search httpdcentos
對於docker來講,若是下載鏡像時不指定標籤,則默認會下載倉庫中最新版,所以也可經過制定標籤來下載指定版本,這裏的標籤(tag)就是用來區分鏡像版本的。bash
docker pull httpd服務器
整個下載過程能夠看出,鏡像文件由若干層(Layer)組成,咱們稱之爲AUFS(文件聯合系統),是實現增量保存與更新的基礎,下載過程當中會輸出鏡像的各層信息 tcp
docker imageside
REPOSITORY ---鏡像屬於的倉庫 TAG ---鏡像的標籤信息,標記同一個倉庫中不一樣鏡像 IMAGE ID ---鏡像的惟一ID號,惟一標識了該鏡像 CREATED ---鏡像建立時間 SIZE ---鏡像大小
docker inspect 11426a19f1a2操作系統
命令格式:docker tag 鏡像名稱:[標籤] 新名稱:[新標籤]
3d
docker tag httpd apache:apache1
方法二:docker rmi 鏡像ID號
<br/>命令格式:docker save -o 存儲文件名 存儲的鏡像<br/>
docker save -o apache2 httpd
命令格式:docker load < 存出的鏡像文件 或者: docker --input 存出的鏡像文件
本地存儲的鏡像文件愈來愈多,就要一個專門的地方存放這些鏡像---倉庫。目前比較方便的就是公共倉庫,默認上傳的是Docker hub官方倉庫,須要註冊帳號完成登陸後才能上傳。
docker tag httpd apache:test
docker login
Username: madeb //此帳號需本身註冊 Password: Login Succeeded
docker push apache:test
docker logout
<br/>命令格式:docker create [選項] 鏡像 運行的程序<br/>
-i 讓容器的輸入保持打開 -t 讓Docker分配一個僞終端
docker create -it httpd /bin/bash
docker ps -a
docker start e1e05c66ec9c //開啓容器
docker ps -a
docker run httpd /usr/bin/bash -c ls /
docker run -d httpd /usr/bin/bash -c ls / "while true; do echo hello;done"
docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES e1e05c66ec9c httpd "/bin/bash" 26 minutes ago Up 25 minutes 80/tcp friendly_euclid
docker stop e1e05c66ec9c
命令格式:docker exec -it e1e05c66ec9c /bin/bash -i 表示讓容器的輸入保持打開 -t 表示讓docker分配一個僞終端
docker exec -it e1e05c66ec9c /bin/bash
<br/>命令格式:docker export 容器ID/名稱 > 文件名<br/>
docker export e1e05c66ec9c > apache1
<br/>命令格式:cat 文件名 | docker import - 生成的鏡像名稱:標籤<br/>
cat apache1 | docker import - apache1 注:此處必須先使用cat,否則沒法導入
docker images
REPOSITORY TAG IMAGE ID CREATED SIZE apache1 latest 2bfb89eb2c5d 49 seconds ago 174MB apache apache1 11426a19f1a2 8 days ago 178MB httpd latest 11426a19f1a2 8 days ago 178M
<br/>命令格式:docker rm 容器ID/名稱<br/>
docker rm e1e05c66ec9c
docker ps -a | grep e1e05c66ec9c
docker默認的存儲目錄在本地/var/lib/docker/,docker的鏡像、容器、日誌等內容所有都存儲在這裏,也可單獨使用大容量分區來存儲這些內容,而且通常選擇LVM邏輯卷,從而避免出現docker運行過程當中存儲目錄容量不足的問題。
docker run --cpu-quota 20000 e1e05c66ec9c //cpu的使用率限定爲20%
echo 20000 > /sys/fs/cgroup/cpu/docker/e1e05c66ec9ced2d6290ebe8e3fdea27f439dcbeea70921ec5d9e5b0bcffaf11/cpu.cfs_quota_us
docker run --cpu-shares 1024 容器A docker run --cpu-shares 1024 容器B docker run --cpu-shares 2048 容器C
docker run --cpuset-cpus 0,1,2,3 容器名
docker run -m 512m 容器名 //限制容器的內存爲512m
docker run --device-write-bps /dev/sda1:1mb 容器名 //限制容器的/dev/sda1的寫入ipos爲1MB