因爲咱們訪問Docker
官網通常狀況下會很是慢,因此咱們不得不把目光投向國內的鏡像站,還好,DaoCloud
爲咱們掃清了一系列障礙,點擊前往。html
你只須要如下步驟:前端
註冊一個DaoCloud
帳號nginx
進入下載頁面,根據本身的系統下載合適的鏡像包git
安裝完成後配置Docker加速器docker
打開命令行,執行docker version
,觀察Docker
是否安裝成功shell
Imagecentos
Image
是一堆文件的集合體,從用戶角度來看,它是一個鏡像包,它的特徵是隻讀的,它是別人(或者咱們本身)構建好的一個環境,在Docker
世界裏,咱們會常常尋找第三方包,來支持咱們的工做,如nginx
,centos
,咱們不修改它,咱們基於它實例出的container
進行工做。bash
container服務器
Image
是隻讀的,咱們是不可能也不必去修改Image
的,咱們要作的就是實例化Image
,即稱爲container
,咱們所作的修改都是基於container
的,如圖所示,container
其實就是Image
的一份拷貝,可是多了一部分可讀寫的區域,咱們就是對這部分進行加工處理的,container
其實也是一系列文件,真正支持咱們交互的是Running container
,它多出了一個進程,此進程提供咱們與container
讀寫區域溝通的途徑,咱們才得以有機會運行Docker。frontend
container
通過咱們的處理就像在git
倉庫裏修改了文件同樣,將修改後的container
打快照固化爲Image
,這即是Docker
生態的流動源泉。起初,咱們可能只是一個殼子,人們陸陸續續爲其增添功能,而且固化,通過一系列的串行做業後,這個殼子鏡像凝結了前人的智慧,傲嬌地展現在咱們面前。
docker run [Image Name]
檢查本地是否有Image Name
若是沒有的話,則從遠端倉庫下載
加載Image
而且實例化container
(實際上執行了 docker create
&& docker start
)
docker ps
默認顯示當前正在運行的container
加上-a
能夠顯示建立過的全部的container
小提示:按住Ctrl + C 能夠中斷當前前臺進程(佔用着你的Shell,讓你沒法繼續進行操做的那個進程)
輸入docker run hello-world
,命令行會打印如下信息
$ docker run hello-world Unable to find image 'hello-world:latest' locally latest: Pulling from library/hello-world 535020c3e8ad: Pull complete af340544ed62: Pull complete Digest: sha256:a68868bfe696c00866942e8f5ca39e3e31b79c1e50feaee4ce5e28df2f051d5c Status: Downloaded newer image for hello-world:latest Hello from Docker.
執行docker ps -a
,將會顯示一個列表,顯示錯亂每每是由於你的命令行工具太窄了,你能夠試着全屏顯示。咱們啓動過的全部的container
將會在這裏顯示。
爲何不能直接執行
docker ps
?hello-world這個Image在建立好container
之後,打印信息,而後自動stop
這個container
,因此它已經不在正在運行的container
列表裏了。
輸入docker run centos /bin/echo 'hello world'
,這一步咱們不只僅啓動了一個container
,還傳輸了一個命令進去執行了。
docker run centos /bin/echo 'Hello world' Hello world
輸入docker run -it centos
能夠啓動一個交互性的centos
,如同你正在遠程ssh
鏈接服務器。
目前爲止,咱們大約執行了3次docker run
命令,不過目前看來,咱們仍是回到了本身的shell
進程上,那麼剛纔執行的那些容器在哪裏呢?咱們試着再次輸入docker ps -a
,仔細觀察打印出的數據,咱們曾經啓動過的容器都在這兒,雖然它們都不處於運行狀態,觀察最右邊的NAMES
字段,Docker
會爲每個容器起一個名字,小貓小狗隨機取,若是咱們想本身起名的話,請在執行run
命令時加上--name [you_define_name]
參數試試看。
咱們固然也能夠再次喚醒咱們的容器們,執行docker start [container_name]
便可。
咱們試着再次啓動一個容器。
# 新建一個名爲 小明 的容器 docker run -it --name xiaoming centos # Ctrl + c 退出交互進程 docker stop xiaoming # 查看最近建立的一個容器 -l -> latest 咱們將會看到小明被打印了 docker ps -l # 咱們再次重啓小明,可是發現回不到命令行交互模式了 docker start xiaoming
有時候,咱們可能會有想進入容器內部,就像一直很熟悉的ssh
鏈接同樣,可是在Docker
裏,要儘可能規避這種想法,咱們能夠經過docker exec
去實現這種需求,詳情見擴展閱讀。
瞭解原理後,圖解Docker
的運行命令,很是值得一看!!!
做爲一名正經前端,固然也要對Docker
嚐嚐鮮,在DaoCloud
官網上發現了一篇很是不錯的文章,你們能夠據此瞭解Docker
。