Docker入門-映象、容器、倉庫簡單命令
映象
1.獲取映象docker pull dl.dockerpool.com:5000/ubuntu:14.04(dl.dockerpool.com為註冊伺服器,5000為埠號,ubuntu為倉庫名稱,14.04是映象也是版本號)2.檢視映象資訊
docker images(列出本地主機已有的所有映象) 更改變遷資訊 docker tag dl.dockerpool.com:5000/ubuntu:latest ubuntu:latest docker inspect 000(000為映象ID,顯示這個映象的詳細資訊)3.搜尋映象
docker search mysql (輸出資訊包括映象名字、描述、星級、是否為官方建立、是否自動建立4.刪除映象)
docker rmi dl.dockerpool.com:5000/ubuntu:latest 注:當有該映象建立的容器存在時,映象檔案預設是無法刪除的,所以刪除映象前最好是刪除所有依賴該映象的容器,請不要用強制刪除。5.建立映象
有三種方法:
a. 基於已有映象的容器建立
docker commit -m “add new image”-a "" 000(容器ID) test(新建image name)b. 基於本地模板匯入
6.存出鏡像c. 基於dockerfile建立cat ubuntu-14.04-x86_64-minimal.tar.gz | docker import - ubuntu:14.04
docker save -o ubuntu_14.04.tar ubuntu:14.047.載入映象
docker load --input ubuntu_14.04.tar 或者
docker load < ubuntu_14.04.tar
8.上傳映象docker push user/test:latest(user使用者需要在dockerHub網站註冊)
容器
容器是映象的一個執行例項,但它帶有額外的可寫層1.建立容器
docker create -it ubuntu:12.04
2.建立並啟動容器
docker run -it ubuntu:12.04 /bin/bash
3.守護態執行
docker run -d ubuntu:12.04
4.檢視容器資訊
docker ps [-a -q 檢視終止狀態]
5.獲取容器的輸出資訊
docker logs cet(cet是容器ID前三個字元)
6.終止容器
docker stop cet
7.啟動容器
docker start cet
8.重啟容器
docker restart cet
9.進入容器
1) attach命令
docker attach nostalgic(nostalgic是docker的name)
缺點:所有視窗同步顯示
2) exec命令
docker exec -it 243... /bin/bash (243...為docker ID)
3) nsenter命令
a)找PID
PID=$(docker-pid 243..)
b)通過PID連結容器
nsenter --target $PID --mount --uts --ipc --net --pid
10.刪除容器
docker rm [-f -l -v] cet
-f 強行終止並刪除
-l 刪除容器的連結,保留容器
-v 刪除掛載的資料卷
11.匯出容器
docker export cet >test.tar
12.匯入容器(將容器快照匯入到本地映象庫)
cat test.tar | docker import - test/ubuntu:v1.0(重新指定標籤為ubuntu的映象名稱,v1.0的版本號
docker load 也可以匯入映象儲存檔案到本地映象庫,他比import方式的好處是:import匯入映象快照檔案將丟失所有的歷史記錄和元資料資訊。
**注:**通過匯出容器和匯入容器可以實現容器遷移(拷貝檔案)
倉庫
倉庫是集中存放映象的地方,一個註冊伺服器上有很多倉庫,一個倉庫中有很多映象。 1. 登入docker login
2. 基本操作
查詢、上傳、下載
3. 自動建立
4. 檢視映象
http://www.dockerpool.com/downloads
5. 更新映象標籤
docker tag dl.dockerpool.com:5000/ubuntu:12.04 ubuntu:12.04(將前面的映象更改為ubuntu:12.04)
6. 建立私有倉庫
docker run -d -p 5000:5000 -v /opt/data/registry:/tmp/registry registry(自動下載並啟動registry容器,建立本地的私有倉庫服務,預設倉庫船艦的容器在/tmp/registry,可以通過-v引數來存放到指定路徑上)
7.管理私有倉庫映象
假設私有倉庫地址為10.0.2.2,埠為5000,
docker tag ubuntu:14.04 10.0.2.2:5000/test(更改標籤名)
docker push 10.0.2.2:5000/test(push映象,會自動push到10.0.2.2地址的機器上)
curl http://10.0.2.2:5000/v1/search(檢視倉庫10.0.2.2:5000中是否含有test映象)
docker pull 10.0.2.2:5000/test(在任何一臺能訪問到10.0.2.2地址的機器上下載映象)