日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Docker镜像与容器命令

發布時間:2025/3/20 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Docker镜像与容器命令 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

2019獨角獸企業重金招聘Python工程師標準>>>

Docker是一個開源的引擎,可以輕松的為任何應用創建一個輕量級的、可移植的、自給自足的容器。開發者在筆記本上編譯測試通過的容器可以批量地在生產環境中部署,包括VMs(虛擬機)、bare metal、OpenStack 集群和其他的基礎應用平臺。?
Docker通常用于如下場景:
web應用的自動化打包和發布;
自動化測試和持續集成、發布;
在服務型環境中部署和調整數據庫或其他的后臺應用;

從頭編譯或者擴展現有的OpenShift或Cloud Foundry平臺來搭建自己的PaaS環境。

一、鏡像相關命令

1、獲取鏡像

[plain]? view plain copy
  • sudo?docker?pull?ubuntu:12.04??

  • 2、列出本地鏡像

    [plain]? view plain copy
  • sudo?docker?images??

  • 在列出信息中,可以看到幾個字段信息

    來自于哪個倉庫,比如 ubuntu
    鏡像的標記,比如 14.04
    它的 ID 號(唯一)
    創建時間
    鏡像大小
    其中鏡像的 ID 唯一標識了鏡像,注意到 ubuntu:14.04 和 ubuntu:trusty 具有相同的鏡像 ID,說明它們實際上是同一鏡像。
    TAG 信息用來標記來自同一個倉庫的不同鏡像。例如 ubuntu 倉庫中有多個鏡像,通過 TAG 信息來區分發行版本,例如 10.04、12.04、12.10、13.04、14.04 等。例如下面的命令指定使用鏡像 ubuntu:14.04 來啟動一個容器。

    3、創建鏡像

    方法一:

    [plain]? view plain copy
  • docker?commit??
  • 方法二:

    [plain]? view plain copy
  • dockerFile??
  • 4、移除本地鏡像

    [plain]? view plain copy
  • 可以使用?docker?rmi?命令。注意?docker?rm?命令是移除容器。??
  • *注意:在刪除鏡像之前要先用?docker rm?刪掉依賴于這個鏡像的所有容器。

    5、存出和載入鏡像
    存出鏡像
    如果要導出鏡像到本地文件,可以使用 docker save 命令。


    6、載入鏡像

    可以使用 docker load 從導出的本地文件中再導入到本地鏡像庫,例如

    [plain]? view plain copy
  • sudo?docker?load?--input?ubuntu_14.04.tar??

  • [plain]? view plain copy
  • $?sudo?docker?load?<?ubuntu_14.04.tar??

  • 這將導入鏡像以及其相關的元數據信息(包括標簽等)。


    二、容器相關命令

    1、啟動容器

    啟動容器有兩種方式,一種是基于鏡像新建一個容器并啟動,另外一個是將在終止狀態(stopped)的容器重新啟動。

    因為 Docker 的容器實在太輕量級了,很多時候用戶都是隨時刪除和新創建容器。所需要的命令主要為 docker run。
    (1)新建并啟動

    下面的命令則啟動一個 bash 終端,允許用戶進行交互。

    [plain]? view plain copy
  • sudo?docker?run?-t?-i?training/sinatra?/bin/bash??
  • 其中,-t 選項讓Docker分配一個偽終端(pseudo-tty)并綁定到容器的標準輸入上, -i 則讓容器的標準輸入保持打開。也可以合并起來寫

    [plain]? view plain copy
  • sudo?docker?run?-ti?ubuntu:14.04?/bin/bash??
  • 可見,容器中僅運行了指定的 bash 應用。這種特點使得 Docker 對資源的利用率極高,是貨真價實的輕量級虛擬化。不加-t -i的話,執行完就退出容器例如,下面的命令輸出一個 “Hello World”,之后終止容器。

    [plain]? view plain copy
  • sudo?docker?run?ubuntu:14.04?/bin/echo?'Hello?world'??

  • 這跟在本地直接執行 /bin/echo 'hello world' 幾乎感覺不出任何區別。 [plain]? view plain copy
  • ??
  • 在交互模式下,用戶可以通過所創建的終端來輸入命令,例如

    如果,只想讓容器在后臺運行呢?那就看下面的吧!

    (2)守護態運行更多的時候,需要讓 Docker 容器在后臺以守護態(Daemonized)形式運行。此時,可以通過添加 -d 參數來實現。例如下面的命令會在后臺運行容器。

    容器啟動后會返回一個唯一的 id,也可以通過 docker ps 命令來查看容器信息。

    然后使用

    [plain]? view plain copy
  • docker?attach?容器name??
  • 就可以進入容器交互界面
    容器name可以通過以下獲得

    [plain]? view plain copy
  • docker?ps?-a???
  • 如進入上面的:


    然后進入:

    當利用 docker run 來創建容器時,Docker 在后臺運行的標準操作包括:
    檢查本地是否存在指定的鏡像,不存在就從公有倉庫下載
    利用鏡像創建并啟動一個容器
    分配一個文件系統,并在只讀的鏡像層外面掛載一層可讀寫層
    從宿主主機配置的網橋接口中橋接一個虛擬接口到容器中去
    從地址池配置一個 ip 地址給容器
    執行用戶指定的應用程序
    執行完畢后容器被終止

    (3)啟動終止的容器

    可以利用 docker start + 容器ID,命令,直接將一個已經終止的容器啟動運行。

    先找到要啟動容器的id

    [plain]? view plain copy
  • docker?ps?-a??

  • Exited表示的就是終止的。然后使用

    [plain]? view plain copy
  • docker?start?b3f9d3239bed???
  • 上面我以后臺運行的方式啟動了兩個新的容器

    這是以后臺運行的方式來執行的,那怎樣才能再進入容器呢?可以用docker attact +容器name

    先通過docker ps -a 取得正在運行的容器名字,然后

    [plain]? view plain copy
  • docker?attach?goofy_mclean??
  • 如下:


    容器的核心為所執行的應用程序,所需要的資源都是應用程序運行所必需的。除此之外,并沒有其它的資源。可以在偽終端中利用 ps 或 top 來查看進程信息。

    (4)退出container但是保持運行

    默認情況下,如果使用ctrl-d退出container,那么container也會stop,按ctrl-p ctrl-q可以退出到宿主機,而保持container仍然在運行.然后要進入再使用docker attach

    2、停止容器

    輸入exit或ctrl+d

    3、獲取容器信息

    要獲取容器的輸出信息,可以通過 docker logs 命令。

    [plain]? view plain copy
  • docker?logs?容器name??

  • 4、在容器中安裝新的程序

    下一步我們要做的事情是在容器里面安裝一個簡單的程序(ping)。我們之前下載的tutorial鏡像是基于ubuntu的,所以你可以使用ubuntu的apt-get命令來安裝ping程序:apt-get install -y ping。
    備注:apt-get 命令執行完畢之后,容器就會停止,但對容器的改動不會丟失。


    5、保存對容器的修改
    當你對某一個容器做了修改之后(通過在容器中運行某一個命令),可以把對容器的修改保存下來,這樣下次可以從保存后的最新狀態運行該容器。docker中保存狀態的過程稱之為committing,它保存的新舊狀態之間的區別,從而產生一個新的版本。或者當結束后,我們使用 exit 來退出,現在我們的容器已經被我們改變了,使用 docker commit 命令來提交更新后的副本。

    先取得修改后的容器ID

    保存容器,實際上就是保存成了一個新的鏡像

    其中,-m 來指定提交的說明信息,跟我們使用的版本控制工具一樣;-a 可以指定更新的用戶信息;之后是用來創建鏡像的容器的 ID;最后指定目標鏡像的倉庫名和 tag 信息。創建成功后會返回這個鏡像的 ID 信息。

    使用 docker images 來查看新創建的鏡像。


    之后,可以使用新的鏡像來啟動容器

    6、刪除容器

    可以使用 docker rm 來刪除一個處于終止狀態的容器。 例如


    如果要刪除一個運行中的容器,可以添加 -f 參數。Docker 會發送 SIGKILL 信號給容器。

    7、檢查運行中的容器

    使用docker ps命令可以查看所有正在運行中的容器列表,使用docker inspect命令我們可以查看更詳細的關于某一個容器的信息。查找某一個運行中容器的id,然后使用docker inspect命令查看容器的信息??梢允褂苗R像id的前面部分,不需要完整的id。



    轉載于:https://my.oschina.net/zhanghaiyang/blog/595672

    總結

    以上是生活随笔為你收集整理的Docker镜像与容器命令的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。