1. 程式人生 > >docker 容器相關命令

docker 容器相關命令

啟動容器:
方法一:從映象啟動(docker run):
 啟動容器並執行shell,然後退出:
docker run registry.intra.weibo.com/yushuang3/centos:v1 /bin/echo "hello world"
啟動容器並進行互動:
docker run -t -i registry.intra.weibo.com/yushuang3/centos:v1 /bin/bash
(-t 選項讓Docker分配一個偽終端(pseudo-tty)並繫結到容器的標準輸入上, -i 則讓容器的標準輸入保持開啟)

注意:如果映象有tag,需要在image後加:tag名

當利用 docker run 來建立容器時,Docker 在後臺執行的標準操作包括:

檢查本地是否存在指定的映象,不存在就從公有倉庫下載
利用映象建立並啟動一個容器
分配一個檔案系統,並在只讀的映象層外面掛載一層可讀寫層
從宿主主機配置的網橋介面中橋接一個虛擬介面到容器中去
從地址池配置一個 ip 地址給容器
執行使用者指定的應用程式
執行完畢後容器被終止
以守護態執行(加引數-d):

docker run -d registry.intra.weibo.com/yushuang3/centos:v1 /bin/sh -c "while true; do echo hello world; sleep 1; done"

方法二:直接將一個已經終止的容器啟動執行(docker start)

檢視容器資訊(docker ps ):

[[email protected] qinys]# docker ps 
CONTAINER ID        IMAGE            COMMAND    CREATED      STATUS       PORTS    NAMES
284953cde84b        centos/qinys     /bin/bash  8 days ago   Up 8 days             test_container  
引數: -a

要獲取容器的輸出資訊(docker logs):
docker logs container_name
例如: docker logs test_container

停止容器(docker stop):

dockerstop container_name

重新啟動處於終止狀態的容器(docker start):

docker  start container_name


匯出容器快照到本地檔案(docker export):
首先獲取容器id:
docker ps -a
匯出容器到本地映象庫:
docker export container_id > centos.tar

匯入容器快照為映象(docker import):
(1)容器在本地:
cat centos.tar | docker import - registry.intra.weibo.com/yushuang3/centos:v2.0
(2)容器在網路上:
docker import http://example.com/exampleimage.tgz registry.intra.weibo.com/yushuang3/centos:v2.0
注意:
使用者既可以使用 docker load 來匯入映象儲存檔案到本地映象庫,
也可以使用 docker import 來匯入一個容器快照到本地映象庫。
這兩者的區別在於容器快照檔案將丟棄所有的歷史記錄和元資料資訊(即僅儲存容器當時的快照狀態),
而映象儲存檔案將儲存完整記錄,體積也要大。此外,從容器快照檔案匯入時可以重新指定標籤等元資料資訊。

刪除容器(docker rm):
docker ps -a 獲取容器name
docker rm container_name