Docker <二> 經常使用命令

1、Docker 鏡像經常使用命令

    * 搜索鏡像java

    可以使用 docker search 命令搜索存放在 Docker Hub 中的鏡像。linux

docker search java

    執行該命令後, Docker 就會在 Docker Hub 中搜索含有 java 這個關鍵詞的鏡像倉庫。nginx

    執行該命令以後,可看到相似於以下的界面:docker

    該界面中包含五列,含義以下:bash

    — NAME : 鏡像倉庫名稱。網絡

    — DESCRIPTION : 鏡像倉庫描述。ide

    — STARS : 鏡像倉庫收藏數,表示該鏡像倉庫的受歡迎程度,相似於 GitHub 的 Stars 。工具

    — OFFICAL : 表示是否爲官方倉庫,該列標記爲 [OK] 的鏡像均由各軟件的官方項目組建立和維護。由結果可知, java 這個鏡像倉庫是官方倉庫,而其餘的倉庫都不是鏡像倉庫。ui

    — AUTOMATED : 表示是不是自動構建的鏡像倉庫。spa

    * 下載鏡像

    使用命令 docker pull 命令便可從 Docker Registry 上下載鏡像,好比:

docker pull java

    執行該命令後,Docker 會從 Docker Hub 中的 java 倉庫下載最新版本的 Java 鏡像。若鏡像下載緩慢,可配置鏡像加速器 【http://www.javashuo.com/article/p-qdsjcbsd-bh.html】。

    該命令還可指定想要下載的鏡像標籤以及 Docker Registry 地址,好比:

docker pull reg.itmuch.com/java:8

    這樣就能夠從指定的 Docker Registry 中下載標籤爲8的 Java 鏡像。

    * 列出鏡像

    使用 docker images 命令便可列出已下載的鏡像。

    執行該命令後,將會看到相似以下的界面:

    該界面包含了5列,含義以下。

    — REPOSITORY : 鏡像所屬倉庫名稱。

    — TAG : 鏡像標籤。默認是 latest ,表示最新。

    — IMAGE ID :   鏡像ID,表示鏡像惟一標識。

    — CREATED : 鏡像建立時間。

    — SIZE :鏡像大小。

    * 刪除本地鏡像

    使用 docker rmi 命令便可刪除指定鏡像。

    例 1 :刪除指定名稱的鏡像。

# 表示刪除 hello-world 這個鏡像
docker rmi hello-world

    例 2 :刪除全部鏡像。

# -f 參數表示強制刪除
docker rmi -f $(docker images)

 

    Tips :

    Docker 的命令參考網址:https://docs.docker.com/engine/reference/commandline

2、Docker 容器經常使用命令

    一、新建並啓動容器

        使用如下 docker run 命令便可新建並啓動一個容器。

        該命令是最經常使用的命令,它有不少選項:

        * -d選項:表示後臺運行

        * -P選項:隨機端口映射

        * -p選項:指定端口映射,有以下四種格式。

            — ip:hostPort:containerPort

            — ip:containerPort

            — hostPort:containerPort

            — containerPort

        * --network選項:指定網絡模式,該選項有以下可選參數:

            — --network=bridge : 默認選項, 表示鏈接到默認的網橋

            — --network=host : 容器使用宿主機的網絡

            — --network=container:NAME_or_ID : 告訴 Docker 讓新建的容器使用已有容器的網絡配置。

            — --network=none : 不配置該容器的網絡,用戶可自定義網絡配置。 

    示例:

    1)

docker run java /bin/echo 'Hello World'

    這樣終端會打印 Hello World 的字樣,跟在本地直接執行 /bin/echo 'hello World' 同樣。

    2)

docker run -d -p 90:80 nginx

    這樣就能啓動一個 Nginx 容器(訪問 http://Docker 宿主機 IP:90/,就能夠看到 Nginx 服務啓動之後的歡迎界面!)。

-d # 後臺運行

-p 宿主機端口:容器端口    # 開放容器端口到宿主機端口

    Tips : 當使用 docker run 命令建立容器時,會先檢查本地是否存在指定鏡像。若是本地不存在該名稱的鏡像,Docker 就會自動從 Docker Hub 下載鏡像並啓動一個 Docker 容器。

    二、列出容器

    使用 docker ps 命令便可列出運行中的容器。執行該命令後,可看到相似於以下的表格。

 

    如須要列出全部容器(包括已中止的容器),可以使用 -a 參數。

    該表格包含了7列,含義以下:

    * CONTAINER_ID : 表示容器ID。

    * IMAGE : 表示鏡像名稱。

    * COMMAND : 表示啓動容器時運行的命令。

    * CREATED : 表示容器的建立時間。

    * STATUS :  表示容器運行的狀態。Up 表示運行中,Exited 表示已中止。    

    * PORTS : 表示容器對外的端口。

    * NAMES : 表示容器的名稱。該名稱默認由 Docker 自動生成,也可使用 docker run 命令的 --name 選項自行制定。

    三、中止容器

    使用 docker stop 命令看,便可中止容器。

docker stop 89fd3b294d7

    其中 89fd3b294d7 是容器 ID,固然也可以使用 docker stop 容器名稱  來中止制定容器。

    四、強制中止容器

    可以使用 docker kill 命令發送 SIGKILL 信號來強制中止容器。

docker kill 89fd3b294d7

    五、啓動已中止的容器

    使用 docker run 命令,便可新建並啓動一個容器;對於已中止的容器,可以使用 docker start 命令來啓動。

docker start 89fd3b294d7

    六、重啓容器

    可以使用 docker restart 命令來重啓容器。該命令其實是先執行了 docker stop 命令,而後執行了 docker start 命令。

    七、進入容器

    某些場景下,可能須要進入運行中的容器。

    * 使用 docker attach 命令進入容器

docker attach 89fd3b294d7

    但實際場景下,使用 docker attach 命令並不方便。當多個窗口同時 attach 到同一個容器時,全部窗口都會同步顯示。同理,若是某個窗口發生阻塞,其餘窗口也沒法執行操做。

    * 使用 nsenter 進入容器

    nsenter 工具包含在 util-linux 2.23 或更高版本中。爲了鏈接到容器,須要找到容器第一個進程的 PID ,可經過如下命令獲取:

docker inspect --format "{{.State.Pid}}" $CONTAINER_ID

    得到 PID 後,就可以使用 nsenter 命令進入容器了:

nsenter --target "$PID" --mount --uts --ipc --net --pid

    示例:

docker ps

docker inspect --format "{{.State.Pid}}" 89fd3b294d7

nsenter --target 95492 --mount --uts --ipc --net --pid

    八、刪除容器

    使用 docker rm 命令可刪除指定容器。

# 刪除制定容器
docker rm 89fd3b294d7

    該命令只能刪除已中止的容器,如需刪除正在運行的容器,可以使用 -f 參數。

# 刪除全部的容器
docker rm -f $(docker ps -a -q)

 

    Tips :

    Docker 的網絡:http://docs.docker.com/engine/userguide/networking/

    Docker 命令:http://docs.docker.com/engine/reference/commandline/

 

本文爲博主原創文章,轉載請註明出處!

https://my.oschina.net/u/3375733/blog/

相關文章
相關標籤/搜索