
docker的安裝以及鏡像,容器,倉(cāng)庫(kù)的基本操作
docker的安裝(centos7中可以直接yum安裝)
????yum install –y docker
# 搜索鏡像
docker search <image> # 在docker index中搜索image
????--automated=false 僅顯示自動(dòng)創(chuàng)建的鏡像
????--no-trunc=false 輸出信息不截?cái)囡@示
????-s 0 指定僅顯示評(píng)價(jià)為指定星級(jí)的鏡像


# 下載鏡像
docker pull <image> # 從docker registry server 中下拉image
還可通過(guò)指定標(biāo)簽下載某鏡像
????docker pull [:TAG]
????docker pull centos:7

# 存出和載入鏡像
????存出本地鏡像文件為.tar
????docker save -o ubuntu_14.04.tar ubuntu:14.04
????導(dǎo)入鏡像到本地鏡像庫(kù)
????docker load --input ubuntu_14.04.tar或者
????docker load < ubuntu_14.04.tar
# 上傳鏡像
????用戶在dockerhub網(wǎng)站注冊(cè)后,即可上傳自制的鏡像。
????docker push NAME[:TAG]
# 創(chuàng)建(使用鏡像創(chuàng)建容器):
????首先得查看鏡像的REPOSITORY和TAG
docker run -i -t REPOSITORY:TAG (等價(jià)于先執(zhí)行docker create 再執(zhí)行docker start 命令)
其中-t選項(xiàng)讓docker分配一個(gè)偽終端并綁定到容器的標(biāo)準(zhǔn)輸入上, -i則讓容器的標(biāo)準(zhǔn)輸入保持打開(kāi)。若要在后臺(tái)以守護(hù)態(tài)(daemonized)形式運(yùn)行,可加參數(shù)-d
啟動(dòng)容器。? docker run -t -i nginx /bin/bash? ? ?#nginx為容器
exit退出容器

docker attach [container_id] #連接一個(gè)正在運(yùn)行的container實(shí)例(即實(shí)例須為start狀態(tài),可以多個(gè) 窗口同時(shí)attach 一個(gè)container實(shí)例),但當(dāng)某個(gè)窗口因命令阻塞時(shí),其它窗口也無(wú)法執(zhí)行了。
exec可直接在容器內(nèi)運(yùn)行的命令。docker exec -ti [container_id] /bin/bash
# 刪除容器:
docker rm <container...> #:刪除一個(gè)或多個(gè)container
docker rm `docker ps -a -q` #:刪除所有的container
docker ps -a -q | xargs docker rm #:同上, 刪除所有的container
docker -rm
????-f 強(qiáng)制中止并運(yùn)行的容器
????-l 刪除容器的連接,但保留容器
????-v 刪除容器掛載的數(shù)據(jù)卷
# 修改容器:
docker commit <container> [repo:tag] # 將一個(gè)container固化為一個(gè)新的image,后面的repo:tag可選。
# 導(dǎo)入和導(dǎo)出容器:
????導(dǎo)出到一個(gè)文件,不管是否處于運(yùn)行狀態(tài)。
????docker export CONTAINER > test.tar
????導(dǎo)入為鏡像:
cat test.tar | docker import - centos:latest
docker啟動(dòng)命令,docker重啟命令,docker關(guān)閉命令
啟動(dòng)? ? ????systemctl start docker
守護(hù)進(jìn)程重啟 ??sudo systemctl daemon-reload
關(guān)閉docker服務(wù) ??systemctl restart ?docker
重啟docker服務(wù) ?sudo service docker restart
沒(méi)有報(bào)錯(cuò)就說(shuō)明關(guān)閉和重啟成功!

docker start/stop/restart <container> #:開(kāi)啟/停止/重啟container
停止所有的container,這樣才能夠刪除其中的images:?
? ? ? docker stop $(docker ps -a -q)

docker ps -a -q? ?查看全部的容器id

? ? ?-a標(biāo)志列出所有容器,-q標(biāo)志只列出容器的ID,然后傳遞給rm命令
刪除全部image的:? docker rmi $(docker images -q)
docker rmi <image ID>: # 刪除一個(gè)或多個(gè)image
docker images? ? ? ? ?# 查看本地鏡像dockerimages

# 啟動(dòng)一個(gè)已經(jīng)停止的容器dockerstart 容器ID# 重啟一個(gè)容器docker restart 容器ID
# 進(jìn)入一個(gè)運(yùn)行中的容器dockerattach 容器ID
docker rmi?鏡像名

# 刪除所有鏡像docker rmi $(docker images| grep -v RESPOSITORY |awk'{print $3}')
# 構(gòu)建容器dockerbuild -t 鏡像名稱 .# 后面的. 指的是當(dāng)前文件夾 (其實(shí)是Dockerfile存放的文件夾)# 建立映像文件。–rm 選項(xiàng)是告訴Docker,在構(gòu)建完成后刪除臨時(shí)的Container,Dockerfile的每一行指令都會(huì)創(chuàng)建一個(gè)臨時(shí)的Container,一般這些臨時(shí)生成的Container是不需要的docker build --rm=true-t loen/lamp .
強(qiáng)制刪除容器:docker -rm -f CONTAINERID?
不能夠刪除一個(gè)正在運(yùn)行的容器,會(huì)報(bào)錯(cuò)。需要先停止容器。
強(qiáng)制刪除鏡像:docker -rmi -f? IMAGEID??
# 刪除容器docker rm 容器ID# 刪除所有容器docker rm $(docker ps-a)
# 查看歷史dockerhistory鏡像ID

# 導(dǎo)出容器dockerexport容器ID > xxx.tar

docker save???
# 把 mynewimage 鏡像保存成 tar 文件dockersave myimage | bzip2 -9-c> /home/save.tar.bz2
# 加載 myimage 鏡像bzip2-d-c < /home/save.tar.bz2 | docker load
sudo docker inspect 74eb50b00a3a? ? ? ? 查看ip為74容器的詳細(xì)信息

獲取所有容器名稱及其IP地址:
docker inspect -f '{{.Name}} - {{.NetworkSettings.IPAddress }}' $(docker ps -aq)

docker rename old_name new_name更改容器的名稱????
docker info
顯示 Docker 系統(tǒng)信息,包括鏡像和容器數(shù)。?!!
