docker~linux下的部署,docker~linux部署
docker是最近比較流行的容器工具,它可以協助我們快速部署應用,尤其是在“微服務”環境下,成百個服務要去啟動,停止,部署一次太麻煩,而如果把它部署到docker裡,下一次應用就方便多了,如果需要幾行代碼就搞定了!
百度百科定義
Docker 是一個開源的應用程式容器引擎,讓開發人員可以打包他們的應用以及依賴包到一個可移植的容器中,然後發布到任何流行的 Linux 機器上,也可以實現虛擬化。容器是完全使用沙箱機制,相互之間不會有任何介面。
應用情境
環境管理複雜
從各種OS到各種中介軟體到各種app, 一款產品能夠成功作為開發人員需要關心的東西太多,且難於管理,這個問題幾乎在所有現代IT相關行業都需要面對。
雲端運算時代的到來
AWS的成功, 引導開發人員將應用轉移到 cloud 上, 解決了硬體管理的問題,然而中介軟體相關的問題依然存在 (所以openstack HEAT和 AWS cloudformation 都著力解決這個問題)。開發人員思路變化提供了可能性。
虛擬化手段的變化
cloud 時代採用標配硬體來降低成本,採用虛擬化手段來滿足使用者按需使用的需求以及保證可用性和隔離性。然而無論是KVM還是Xen在 docker 看來,都在浪費資源,因為使用者需要的是高效運行環境而非OS, GuestOS既浪費資源又難於管理, 更加輕量級的LXC更加靈活和快速
LXC的移動性
LXC在 linux 2.6 的 kernel 裡就已經存在了,但是其設計之初並非為雲端運算考慮的,缺少標準化的描述手段和容器的可遷移性,決定其構建出的環境難於遷移和標準化管理(相對於KVM之類image和snapshot的概念)。docker 就在這個問題上做出實質性的革新。這是docker最獨特的地方。
在centos上的部署
一 安裝並添加服務和自啟動項
[root@localhost ~]# yum install docker
[root@localhost ~]# systemctl start docker.service
[root@localhost ~]# systemctl enable docker.service
二 docker幾個常用的命令
docker ps
令查看容器
docker info
檢查Docker的安裝是否正確,如果沒有找到此命令,則表示Docker沒有正確安裝
docker pull busybox
拉取一個預建的鏡像
sample_job=$(docker run -d busybox /bin/sh -c "while true; do echo Docker; sleep 1; done")
以後台進程的方式運行hello docker
sample_job命令會隔一秒列印一次Docker,使用Docker logs可以查看輸出。如果沒有起名字,那這個job會被分配一個id,以後使用命令例如Docker logs查看日誌會變得比較麻煩。
docker help
所有Docker命令
docker logs $sample_job
運行Docker logs命令來查看job的目前狀態:
docker stop $sample_job
停止名為sample_job的容器
docker restart $sample_job
重新啟動該容器
docker stop $sample_job docker rm $sample_job
如果要完全移除容器,需要將該容器停止,然後才能移除
docker commit $sample_job job1
將容器的狀態儲存為鏡像
docker images
令查看所有鏡像的列表
安裝.netCore的鏡像
下載dotnet的鏡像
sudo docker pull microsoft/dotnet
查看一下這個鏡像
sudo docker images
這個過程可以是空的,因為上面的下載速度很慢,畢竟是大老美的伺服器,呵呵!
下講我們將學習如何去部署一個netcore網站在docker裡!