容器與管理程序虛擬化(HV)有所有不同。管理程序虛擬化能過中間層將一對吧或多臺獨立的機器虛擬運行于物理硬件之上,而容器則是直接運行在操作系統(tǒng)內核之上的用戶空間。
和傳統(tǒng)的虛擬化及半虛擬化相比,容器運行不需要模擬層和管理層,而是使用操作系統(tǒng)的系統(tǒng)調用接口。這降低了單個容器所需要的開銷。也使得可以運行更多的容器。
Docker 鼓勵面向服務的架構和微服務架構
Docker For Mac
右鍵點擊桌面頂欄的 docker 圖標,選擇 Preferences ,在 Advanced 標簽下的 Registry mirrors 列表中加入下面的鏡像地址:
http://5ca5f1e4.m.daocloud.ioCopy
點擊 Apply & Restart 按鈕使設置生效。
運行第一個容器
docker run -i -t ubuntu /bin/bash
run命令提供了Docker容器的創(chuàng)建到啟動的功能。 -i標志保證容器中STDIN是開始的,-t標志則是為創(chuàng)建的容器分配一個偽tty終端
輸入exit退出容器
可以使用docker run 「容器的名字或容器ID」來重啟已經停止的容器,并且會沿用run命令時指定的參數來運行,因此會運行一個交互式的會試的shell,我們可以用docker attach [name | ID]命令,重新附著到該容器的會話上。
docker ps -a //查看己創(chuàng)建的容器 docker ps --help 來得到更多信息
連接到容器后,輸入hostname,發(fā)現其值就是容器的ID
創(chuàng)建守護式容器
沒有交互式的會話,,非常適合運行應用程序和服務。
docker run --name daemon_dave_centos -d centos /bin/sh -c "while true; do echo helllo world; sleep 1; done"
docker logs daemon_dave_centos //發(fā)現一直在打印hellow world
docker logs -f daemon_dave_centos //-f命令與 tail -f 命令相似
logs --tail 0 -f daemon_dave_centos // --tail 后面指定條數,0表示最新,10表示 從最近10條
docker top daemon_dave_centos //查看容器內的進程
在容器內運行進程
Docker 1.3 后可以用docker exec命令在容器外啟動新進程
//-d表示需要運行一個后臺進程
docker exec -d daemon_dave_centos touch /etc/new_config_file
docker exec -t -i daemon_dave_centos /bin/bash
停止守護式容器
docker stop 【name | ID】
自動重啟容器
--restart 標志會檢查容器退出代碼,并據此來決定是否需要那我還是啟容器。默認行為是Docker不檢查
深入容器
docker inspect [name |ID] 來獲取更多容器信息
刪除容器
如果容器不在使用,可用docker rm 命令刪除它們
docker rm [name | ID]
//可通過以下方式刪除所有
docker rm docker ps -a -q