本文大概耗時10分鐘。linux
1.爲何要用docker
2.docker幾個概念
3.如何運行docker container
4.如何build imagedocker
1.linux命令行(見參考連接)
2.必要的英語詞彙ubuntu
在探討docker能爲咱們帶來的好處時,咱們先得明白docker是什麼。docker官網是這樣描述的「Docker is the world’s leading software container platform.」因而可知,docker是一個容器的平臺,咱們把要打包的東西放到一個容器中,而後就能夠在docker這個平臺上運行,由於docker在各個系統下均可以安裝,因此就能夠和系統無關,屏蔽了環境的複雜性。同時,docker的容器能夠包含app運行的全部依賴,在部署的時候就沒有必要把全部依賴都手動安裝一遍了。後端
雖然一上來就提概念像是教科書,可是不搞懂核心概念,下面的東西你可能看不懂。。。或者跳過這裏直接看下面也行,遇到不懂的回過頭來再看。
image和container
image就是包含了一個應用的代碼,依賴,運行時。container能夠理解爲image的運行形態,它是以一個獨立的進程存在的。app
docker deamon與docker client
docker的守護進程,後端服務。docker client是一個docker的客戶端,它和docker deamon交互。ui
base image與child image
base image 是指沒有父鏡像的鏡像,這些鏡像通常是系統級別的鏡像,如 ubuntu,alpine。child image在base image上構建的鏡像。命令行
Dockerfile image的描述文件。它包含了運行app所需的全部信息。包括base image,代碼位置,工做目錄,依賴,項目啓動命令等等。code
如何運行docker container
docker的安裝就不贅述了,能夠去看參考連接。
先執行如下你的第一條docker語句docker container run hello-world
orm
又是hello world,so cool,right?進程
Unable to find image 'hello-world:latest' locally latest: Pulling from library/hello-world 03f4658f8b78: Pull complete a3ed95caeb02: Pull complete Digest: sha256:8be990ef2aeb16dbcb9271ddfe2610fa6658d13f6dfb8bc72074cc1ca36966a7 Status: Downloaded newer image for hello-world:latest
Hello from Docker. This message shows that your installation appears to be working correctly.
若是你能看到上面的東西,證實你已經運行了第一個docker container,恭喜呀。
讓咱們來看下那個命令運行以後用發生了什麼吧。首先,docker會去你的本地去找有沒有hello-world這個image,發現沒有以後它會去docker registry上去找有沒有hello-world,找到了以後把它拉取到本地,而後它又發現了裏面的Dockerfile還有依賴,它就接着拉取依賴,最後,拉取成功,啓動。
好了,把這個再也不須要的container移除吧。運行如下語句
docker container ls -a
你會看到下面的東西
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
9e354503933b hello-world "/hello" 4 minutes ago Exited (0) 27 seconds ago serene_engelbart
複製這個container id所有或者部分
運行下面語句,將會移除container
docker container rm -f 9e354503933b
光移除container仍是不夠的,container只是運行形態,image還在,還得把image也移除了。運行下列語句列出你本地的images。
docker images
你會收到看到一個對應的image id,接着經過image id移除image。
docker image rm 1815c82652c0
下次再說,嘿嘿嘿。