Docker--容器和映象的使用

yoylee_web發表於2018-10-13

一:容器的使用

  • 使用容器我們可以通過Docker客戶端進行操作,使用Docker命令我們可以看到所有的客戶端命令

# docker      //可以看到簡潔版的

# man docker  //可以看到該命令的詳細解釋

# docker command --help  //詳細瞭解command命令的用法
  • 使用Docker執行一個web應用

# docker pull training/webapp             
//載入映象

# docker run -d -P training/webapp python app.py  
//建立容器,後臺執行web應用

# docker ps  
//檢視程式

# docker run -d -p 4999:5000 training/webapp python app.py   
//使用-p引數設定端介面號,格式:4999(本地4999埠):5000(容器的5000埠,預設的python flask埠。python flask詳情:https://blog.csdn.net/u012734441/article/details/62036503) 

# docker port 容器Id或者容器名
//檢視容器的埠

//引數:
* -d: 讓容器在後臺執行。
* -P: 將容器內部使用的網路埠對映到我們使用的主機上。
* -p: 修改本地對映的埠。

docker ps結果為:

可以看到ports欄位,顯示的為Docker的5000對應了本地的1024埠,我們在瀏覽器輸入:”本地伺服器ip:1024 “,就可以看到web執行的結果。

  • 顯示容器的程式日誌、

# docker logs 容器Id或者容器名
//靜態顯示容器的執行日誌

# docker logs -f  容器Id或者容器名
//動態顯示容器的執行日誌
  • 檢視容器內部執行的程式

# docker top 容器Id或者容器名
//顯示容器內部執行的程式,顯示結果如下:

UID             PID             PPID            C               STIME           TTY             TIME            CMD

root            13096           13078           0               16:49           ?               00:00:00        python app.py

。。。。。。。
  • 檢查容器,顯示容器的所有資訊

# docker inspect 容器Id或者容器名
//顯示Docker 的底層資訊。它會返回一個 JSON 檔案記錄著 Docker 容器的配置和狀態資訊。示例如下:

[

    {

        "Id": "b4e66581cadb896107f1e9edf036bf7174593f544b16f1ffddcd04b8532e2532",

        "Created": "2018-10-12T08:49:26.027911855Z",

        "Path": "python",

        "Args": [

            "app.py"

        ],

        "State": {

            "Status": "running",

            "Running": true,

            "Paused": false,

            "Restarting": false,

            "OOMKilled": false,

            "Dead": false,

            "Pid": 13096,

            "ExitCode": 0,

            "Error": "",

            "StartedAt": "2018-10-12T08:49:26.274568849Z",

            "FinishedAt": "0001-01-01T00:00:00Z"

        },

        "Image": "sha256:6fae60ef344644649a39240b94d73b8ba9c67f898ede85cf8e947a887b3e6557",

        .....................

  • 停止容器

# docker stop 容器Id或者容器名
  • 啟動與重啟容器

# docker start  容器Id或者容器名
//啟動已經被停止的容器

# docker restart 容器Id或者容器名
//重啟正在執行的容器

# docker ps -l 
//顯示最後一個建立的容器
  • 刪除不需要的容器

# docker rm 容器Id或者容器名
//刪除容器,注意:刪除的容器必須是非執行狀態的,否則會刪除不成功報錯,

二:映象的使用

  • 列出映象列表

    • 同一倉庫源可以有多個 TAG,代表這個倉庫源的不同個版本,如ubuntu倉庫源裡,有15.10、14.04等多個不同的版本,我們使用 REPOSITORY:TAG 來定義不同的映象。

    • 如果不指定一個映象的版本標籤,例如你只使用 ubuntu,docker 將預設使用 ubuntu:latest 映象。

docker images

####引數說明:
* REPOSITORY:表示映象的倉庫源
* TAG:映象的標籤
* IMAGE ID:映象ID
* CREATED:映象建立時間
* SIZE:映象大小
  • 獲取新的映象

    • 在本地主機上使用一個不存在的映象時 Docker 就會自動下載這個映象。如果我們想預先下載這個映象,我們可以使用 docker pull 命令來下載它。

docker pull tomcat
#不指定映象的tag便是下載最新的latest

docker pull tomcat:8
#指定映象tag
  • 查詢映象

    • 我們可以從 Docker Hub 網站來搜尋映象,Docker Hub 網址為: https://hub.docker.com/

    • 我們也可以使用 docker search 命令來搜尋映象。比如我們需要一個httpd的映象來作為我們的web服務。我們可以通過 docker search 命令搜尋 httpd 來尋找適合我們的映象

docker search httpd

###引數說明:
* NAME:映象倉庫源的名稱
* DESCRIPTION:映象的描述
* OFFICIAL:是否docker官方釋出
  • 建立映象

####方式一:從已經建立的容器中更新映象,並且提交這個映象

##:需要有一個容器
docker run -t -i ubuntu:15.10 /bin/bash

##:在執行的容器內使用 apt-get update 命令進行更新
apt-get update

##:退出容器
exit命令  或者 ctrl + c   

##:通過命令 docker commit來提交容器副本為新映象
docker commit -m="has update" -a="runoob" e218edb10161 runoob/ubuntu:v2
* -m:提交的描述資訊
* -a:指定映象作者
* e218edb10161:容器ID
* runoob/ubuntu:v2:指定要建立的目標映象名

##:檢視提交的新映象,建立新映象完畢
docker images
####:方式二: 使用 Dockerfile 來建立一個新的映象

請移步:https://blog.csdn.net/CSDN___LYY/article/details/83061188
  • 設定(修改)映象標籤

    • 使用 docker tag 命令,為映象新增一個新的標籤

docker tag 860c279d2fec runoob/centos:dev

##引數介紹:
* docker tag : 建立標籤
* 860c279d2fec : 映象的唯一ID
* runoob/centos:dev : 新的名稱與標籤
  • 刪除映象

docker rmi <options> <imageID>or<imageName>

##引數options:
* -f :強制刪除;
* --no-prune :不移除該映象的過程映象,預設移除;
  • 檢視映象變動歷史

docker  history  <options> <imageID>or<imageName>

##引數options:
* -H :以可讀的格式列印映象大小和日期,預設為true;
* --no-trunc :顯示完整的提交記錄;
* -q :僅列出提交記錄ID。
  • 映象歸檔為tar檔案

    • 歸檔為檔案後,便於對映象進行遷移

docker save -o <filename.tar> <imageID>or<imageName>

##引數:
-o  filename.tar: 指定輸出到的檔案
  • 從tar檔案匯入映象

docker import -m "new image"  file_path

##引數:
* -c :應用docker 指令建立映象;
* -m :提交時的說明文字;

 

 

參考:http://www.runoob.com/docker/docker-command-manual.html

相關文章