溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Docker入門-常用命令

發布時間:2020-07-15 12:06:25 來源:網絡 閱讀:358 作者:流體石頭 欄目:開發技術

Docker鏡像操作

Docker運行容器前需要本地存在對應的鏡像,如果本地不存在該鏡像,Docker會從鏡像倉庫下載該鏡像。

獲取鏡像

從Docker鏡像倉庫獲取鏡像的命令是docker pull。其命令格式為:

docker pull [選項][Docker Registry地址[:端口號]/]倉庫名[:標簽]

具體的選項可以通過docker pull --help命令看到,這里我們說一下鏡像名稱的格式。Docker鏡像倉庫地址:地址的格式一般是<域名/IP>[:端口號]。默認地址是Docker Hub。倉庫名:如之前所說,這里的倉庫名是兩段式名稱,即<用戶名>/<軟件名>。對于Docker Hub,如果不給出用戶名,則默認為library,也就是官方鏡像。

docker pull ubuntu:16.04

上面的命令中沒有給出Docker鏡像倉庫地址,因此將會從Docker Hub獲取鏡像。而鏡像名稱是ubuntu:16.04,因此將會獲取官方鏡像library/ubuntu倉庫中標簽為16.04的鏡像。

運行鏡像

有了鏡像后,我們就能夠以這個鏡像為基礎啟動并運行一個容器。以上面的ubuntu:16.04為例,如果我們打算啟動里面的bash并且進行交互式操作的話,可以執行下面的命令。

docker run -it --rm ubuntu:16.04 bash

-it:這是兩個參數,一個是-i:交互式操作,一個是-t終端。

--rm:這個參數是說容器退出后隨之將其刪除

ubuntu:16.04:這是指用ubuntu:16.04鏡像為基礎來啟動容器。

bash:放在鏡像名后的是命令,這里我們希望有個交互式shell,因此用的是bash。

最后我們通過exit退出了這個容器。

列出鏡像

要想列出已經下載下來的鏡像,可以使用docker image ls命令。列表包含了倉庫名、標簽、鏡像ID、創建時間以及所占用的空間。

docker image ls

查看鏡像、容器、數據卷所占用的空間。

docker system df

倉庫名、標簽均為<none>的鏡像稱為虛懸鏡像(dangling image),顯示這類鏡像

docker image ls -f dangling=true

一般來說,虛懸鏡像已經失去了存在的價值,是可以隨意刪除的,可以用下面的命令刪除

docker image prune

刪除本地鏡像

如果要刪除本地的鏡像,可以使用docker image rm命令,其格式為:

docker image rm [選項] <鏡像1>[<鏡像2>...]

其中,<鏡像>可以是鏡像短ID、鏡像長ID、鏡像名或者鏡像摘要。

使用docker image ls -q來配置docker image rm,這樣可以批量刪除希望刪除的鏡像。

docker image rm $(docker image ls -q ubuntu) #刪除所有倉庫名為redis的鏡像

或者刪除所有在ubuntu:16.04之前的鏡像:

docker image rm $(docker image ls -q -f before=ubuntu:16.04)

Docker容器操作

容器是獨立運行的一個或一組應該,以及它們運行態環境。對應的,虛擬機可以理解為模擬運行的一整套操作系統(提供了運行態環境和其他系統環境)和跑在上面的應用。

啟動容器

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

因為Docker的容器實是輕量級的,用戶可以隨時刪除和新創建容器。

新建并啟動
docker run

輸出一個“Hello World”,之后終止容器。

docker run ubuntu:16.04 /bin/echo "Hello world"
啟動已終止容器
docker container start 或者 docker start

啟動一個bash終端,允許用戶進行交互。

docker run -t -i ubuntu:16.04 /bin/bash

-t 讓Docker分配一個偽終端并綁定到容器的標準輸入上,-i則讓容器的標準輸入保持打開。當利用docker run來創建容器時,Docker在后臺運行的標準操作包括:

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

后臺運行

很多時間,需要讓Docker在后臺運行而不是直接把執行命令的結果輸出在當前宿主機下。此時,可以通過添加-d參數來實現。

如果不使用-d參數運行容器,比如docker run hello-world會把日志打印在控制臺。
如果使用-d參數運行容器,比如docker run -d hello-world不會輸出日志,只會打印容器id(輸出結果可以用docker logs查看);

注:容器是否會長久運行,是和docker run指定的命令有關,和-d參數無關。

停止運行的容器

可以使用docker container stop來終止一個運行中的容器。終止狀態的容器可以用docker container ls -a 命令看到。處于終止狀態的容器,可以通過docker container start命令來重新啟動。此處,docker container restart命令會將一個運行態的容器終止,處于再重新啟動它。

進入容器

在使用-d參數時,容器啟動后進入后臺,某些時候需要進入容器進行操作,使用docker exec命令可以進入到運行中。

exec命令 -i -t參數

docker exec后邊可以跟多個參數,這是主要說明 -i -t參數。
只用-i參數時,由于沒有分配偽終端,界面沒有我們熟悉的Linux命令提示符,但命令執行結果仍然可以返回。當-i -t參數一起使用時,則可以看到我們熟悉的Linux命令提示符。

docker exec -it 容器id /bin/bash

導出和導入容器

導出容器

如果要導出本地某個容器,可以使用docker export命令。

docker export 容器ID>導出文件名.tar
導入容器

可以使用docker import從容器快照文件中再導入為鏡像

cat 導出文件名.tar|docker import - 鏡像用戶/鏡像名:鏡像版本

此外,也可以通過指定URL或者某個目錄來導入

docker import http://study.163.com/image.tgz example/imagerepo

刪除容器

刪除容器

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

docker container rm ubuntu:16:04

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

清楚所有處于終止狀態的容器

用docker container ls -a 命令可以查看所有已經創建的包括終止狀態的容器,如果數量太多要一個個刪除可以會很麻煩,用下面的命令可以清理掉所有處于終止狀態的容器。

docker container prune
向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女