Docker基礎:查找鏡像和運行容器

【編者的話】本文是做者學習Docker的筆記,涉及在Windows上的安裝,介紹了鏡像和容器的知識和基本操做,適合Docker初學者。web

【3 天燒腦式容器存儲網絡訓練營 | 深圳站】本次培訓以容器存儲和網絡爲主題,包括:Docker Plugin、Docker storage driver、Docker Volume Pulgin、Kubernetes Storage機制、容器網絡實現原理和模型、Docker網絡實現、網絡插件、Calico、Contiv Netplugin、開源企業級鏡像倉庫Harbor原理及實現等。docker

介紹

也許你已經據說過Docker,這裏我不打算深刻介紹Docker是什麼以及它的工做原理。若是你從未據說過Docker,這篇文章會幫助你熟悉Docker。若是你瞭解Docker的話咱們從一些基本的功能提及:鏡像容器以及如何使用它們解決真實場景中的問題,好比想要學習一門很棒的語言又不但願花太多時間在安裝語言和環境搭建上。shell

繼續以前,須要說明三點:windows

  • 這個系列是關於基本操做的,目的在於介紹概念,爲深刻學習作鋪墊。
  • 我並非這個領域的專家,甚至也不高級。實際上我是初學者而且也沒有在任何重要項目中使用過Docker。我想看到後一句話不少人已經不打算看了。
  • 我正在使用Windows系統,因此個人操做是在Windows上進行的。這並不意味着你不能在Mac或Linux上參考本文,實際上只有安裝部分不一樣,其他的應該是同樣的。

安裝

參考官方安裝指導,若是是Windows,會有兩個選項:直接安裝Docker或者Docker Toolbox(Docker工具箱)。須要注意新版本Docker須要64-bit Windows 10 Pro而且支持Microsoft Hyper-V。若是你的Windows版本比較老,安裝Toolbox,它兼容Oracle Virtual Box。網絡

當使用新版本Docker時,你會獲得提示:
app


若是你使用Docker Toolbox,會有不少工具,其一是 Docker Quickstart Terminal

若是安裝原生的Docker,你能夠在最愛的終端中運行Docker命令,若是是Toolbox,在Quickstart Terminal中輸入命令。webapp

另外一件須要注意的點在於,原生安裝Docker時經過localhost訪問容器中的webapps,若是是Toolbox,你須要注意啓動Quickstart Terminal時的輸出信息,它會給你容器的IP,在個人電腦上是192.168.99.100。工具

快速總結下,在Windows上你有兩個選擇:學習

  • 原生Docker,你須要64-bit Windows 10 Pro而且支持Microsoft Hyper-V,你會有Docker的系統圖標,能在任何終端中輸入Docker命令
  • Docker Toolbox,你的Windows版本低時的選擇。須要安裝Oracle Virtual Box,啓動Quickstart Terminal後輸入Docker命令。

使用

假設一個簡單可是貼近現實的例子:學習基於JVM的語言Scala。在成爲專家前,你老是須要學習不少新的知識,你要參考不少基本的入門指南,須要一個REPL執行操做,可是你不但願在本身的電腦上下載安裝Scala。那麼如何使用Docker解決這個問題?很簡單,你只須要運行一個包含Scala和相關依賴的容器便可。ui

若是你是開發者,能夠很容易理解鏡像和容器的區別,容器相對於鏡像就像對象相對於類。

鏡像是從網絡上下載的不可變文件,它描述瞭如何構建特定的容器。它們可能很大,因此要分模塊構建以便在網絡上傳輸。容器是鏡像的實例,Docker啓動容器後執行鏡像中指定的指令。

在咱們的例子中,咱們須要搜索Scala鏡像並啓動容器。

搜索鏡像

兩個選項,直接在Google搜索Scala docker image或者運行命令docker search scala


咱們以上圖中第一個鏡像爲例,能夠登陸docker hub( hub.docker.com/r/hseeberge…

如何啓動容器

啓動容器的命令是:
docker run -it hseeberger/scala-sbt
運行docker run --help能夠查看更詳細的信息:

  • -i表示交互式,STDIN會被開啓,即便咱們沒有附着到容器上
  • -t表示tty,咱們會獲得一個僞tty與容器交互

-it常常結合在一塊兒使用。run命令運行結束後你會看到以下內容:
root@3d5b83c7ea03:~#
作了這麼多麻煩事就獲得一個命令行提示符?顯然不,這裏你獲得的新容器的shell,時刻準備接收命令。若是執行ls,會看到一個scala-2.12.2目錄,咱們進入這個目錄而後執行scala,而後獲得scala REPL,在這裏就能夠實戰學習scala了。Ctrl+C退出REPL,exit退出容器。

如何作得更好

咱們可使用第二個鏡像,而後直接運行docker run -it williamyeh/scala命令就能夠獲得scala REPL了。爲什麼運行兩個鏡像獲得不一樣的結果?我會在下一篇文章中介紹。

總結一下,運行容器只須要簡單運行命令docker run -it your/image,運行的容器會作什麼取決於你的鏡像了。

有用的命令

  • docker ps:列出全部正在運行的容器
  • docker image ls:列出全部的鏡像
  • docker stop :暫停容器
  • docker rm :刪除容器

原文連接:Docker basics - finding an image and running a container(翻譯:盧文泉)

相關文章
相關標籤/搜索