成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專(zhuān)欄INFORMATION COLUMN

docker專(zhuān)題(2):docker常用管理命令(下)

duan199226 / 3171人閱讀

摘要:本文承接專(zhuān)題常用管理命令上。按照指示的順序進(jìn)行即可。將同一的所有,合并為一個(gè)新的新建一個(gè),保留舊的那條記錄查看容器的信息命令可以查看容器的端口開(kāi)啟及綁定容器啟動(dòng)后執(zhí)行的。其他命令還有一些如等不是很常用的命令,比較簡(jiǎn)單,請(qǐng)參考官網(wǎng)。

本文承接docker專(zhuān)題(2):docker常用管理命令(上)。

1. 開(kāi)啟/停止/重啟container(start/stop/restart)

容器可以通過(guò)run新建一個(gè)來(lái)運(yùn)行,也可以重新start已經(jīng)停止的container,但start不能夠再指定容器啟動(dòng)時(shí)運(yùn)行的指令,因?yàn)閐ocker只能有一個(gè)前臺(tái)進(jìn)程。
容器stop(或Ctrl+D)時(shí),會(huì)在保存當(dāng)前容器的狀態(tài)之后退出,下次start時(shí)保有上次關(guān)閉時(shí)更改。而且每次進(jìn)入attach進(jìn)去的界面是一樣的,與第一次run啟動(dòng)或commit提交的時(shí)刻相同。

CONTAINER_ID=$(docker start )
docker stop $CONTAINER_ID
docker restart $CONTAINER_ID

關(guān)于這幾個(gè)命令可以通過(guò)一個(gè)完整的實(shí)例使用:docker如何創(chuàng)建一個(gè)運(yùn)行后臺(tái)進(jìn)程的容器并同時(shí)提供shell終端。

2. 連接到正在運(yùn)行中的container(attach)

attach上去的容器必須正在運(yùn)行,可以同時(shí)連接上同一個(gè)container來(lái)共享屏幕(與screen命令的attach類(lèi)似)。
官方文檔中說(shuō)attach后可以通過(guò)CTRL-C來(lái)detach,但實(shí)際上經(jīng)過(guò)我的測(cè)試,如果container當(dāng)前在運(yùn)行bash,CTRL-C自然是當(dāng)前行的輸入,沒(méi)有退出;如果container當(dāng)前正在前臺(tái)運(yùn)行進(jìn)程,如輸出nginx的access.log日志,CTRL-C不僅會(huì)導(dǎo)致退出容器,而且還stop了。這不是我們想要的,detach的意思按理應(yīng)該是脫離容器終端,但容器依然運(yùn)行。好在attach是可以帶上--sig-proxy=false來(lái)確保CTRL-DCTRL-C不會(huì)關(guān)閉容器。

# docker attach --sig-proxy=false $CONTAINER_ID
3. 查看image或container的底層信息(inspect)

inspect的對(duì)象可以是image、運(yùn)行中的container和停止的container。

查看容器的內(nèi)部IP
# docker inspect --format="{{.NetworkSettings.IPAddress}}" $CONTAINER_ID
172.17.42.35
4. 刪除一個(gè)或多個(gè)container、image(rm、rmi)

你可能在使用過(guò)程中會(huì)buildcommit許多鏡像,無(wú)用的鏡像需要?jiǎng)h除。但刪除這些鏡像是有一些條件的:

同一個(gè)IMAGE ID可能會(huì)有多個(gè)TAG(可能還在不同的倉(cāng)庫(kù)),首先你要根據(jù)這些 image names 來(lái)刪除標(biāo)簽,當(dāng)刪除最后一個(gè)tag的時(shí)候就會(huì)自動(dòng)刪除鏡像;

承上,如果要?jiǎng)h除的多個(gè)IMAGE NAME在同一個(gè)REPOSITORY,可以通過(guò)docker rmi 來(lái)同時(shí)刪除剩下的TAG;若在不同Repo則還是需要手動(dòng)逐個(gè)刪除TAG;

還存在由這個(gè)鏡像啟動(dòng)的container時(shí)(即便已經(jīng)停止),也無(wú)法刪除鏡像;

TO-DO
如何查看鏡像與容器的依存關(guān)系

刪除容器
docker rm

刪除所有停止的容器
docker rm $(docker ps -a -q)

刪除鏡像
docker rmi
下面是一個(gè)完整的示例:

# docker images            <==
ubuntu            13.10        195eb90b5349       4 months ago       184.6 MB
ubuntu            saucy        195eb90b5349       4 months ago       184.6 MB
seanlook/ubuntu   rm_test      195eb90b5349       4 months ago       184.6 MB

使用195eb90b5349啟動(dòng)、停止一個(gè)容器后,刪除這個(gè)鏡像
# docker rmi 195eb90b5349
Error response from daemon: Conflict, cannot delete image 195eb90b5349 because it is 
tagged in multiple repositories, use -f to force
2014/11/04 14:19:00 Error: failed to remove one or more images

刪除seanlook倉(cāng)庫(kù)中的tag     <==
# docker rmi seanlook/ubuntu:rm_test
Untagged: seanlook/ubuntu:rm_test

現(xiàn)在刪除鏡像,還會(huì)由于container的存在不能rmi
# docker rmi 195eb90b5349
Error response from daemon: Conflict, cannot delete 195eb90b5349 because the 
 container eef3648a6e77 is using it, use -f to force
2014/11/04 14:24:15 Error: failed to remove one or more images

先刪除由這個(gè)鏡像啟動(dòng)的容器    <==
# docker rm eef3648a6e77

刪除鏡像                    <==
# docker rmi 195eb90b5349
Deleted: 195eb90b534950d334188c3627f860fbdf898e224d8a0a11ec54ff453175e081
Deleted: 209ea56fda6dc2fb013e4d1e40cb678b2af91d1b54a71529f7df0bd867adc961
Deleted: 0f4aac48388f5d65a725ccf8e7caada42f136026c566528a5ee9b02467dac90a
Deleted: fae16849ebe23b48f2bedcc08aaabd45408c62b531ffd8d3088592043d5e7364
Deleted: f127542f0b6191e99bb015b672f5cf48fa79d974784ac8090b11aeac184eaaff

注意,上面的刪除過(guò)程我所舉的例子比較特殊——鏡像被tag在多個(gè)倉(cāng)庫(kù),也有啟動(dòng)過(guò)的容器。按照<==指示的順序進(jìn)行即可。

5. docker build 使用此配置生成新的image

build命令可以從Dockerfile和上下文來(lái)創(chuàng)建鏡像:
docker build [OPTIONS] PATH | URL | -
上面的PATHURL中的文件被稱(chēng)作上下文,build image的過(guò)程會(huì)先把這些文件傳送到docker的服務(wù)端來(lái)進(jìn)行的。
如果PATH直接就是一個(gè)多帶帶的Dockerfile文件則可以不需要上下文;如果URL是一個(gè)Git倉(cāng)庫(kù)地址,那么創(chuàng)建image的過(guò)程中會(huì)自動(dòng)git clone一份到本機(jī)的臨時(shí)目錄,它就成為了本次build的上下文。無(wú)論指定的PATH是什么,Dockerfile是至關(guān)重要的,請(qǐng)參考Dockerfile Reference。
請(qǐng)看下面的例子:

# cat Dockerfile 
FROM seanlook/nginx:bash_vim
EXPOSE 80
ENTRYPOINT /usr/sbin/nginx -c /etc/nginx/nginx.conf && /bin/bash

# docker build -t seanlook/nginx:bash_vim_Df .
Sending build context to Docker daemon 73.45 MB
Sending build context to Docker daemon 
Step 0 : FROM seanlook/nginx:bash_vim
 ---> aa8516fa0bb7
Step 1 : EXPOSE 80
 ---> Using cache
 ---> fece07e2b515
Step 2 : ENTRYPOINT /usr/sbin/nginx -c /etc/nginx/nginx.conf && /bin/bash
 ---> Running in e08963fd5afb
 ---> d9bbd13f5066
Removing intermediate container e08963fd5afb
Successfully built d9bbd13f5066

上面的PATH.,所以在當(dāng)前目錄下的所有文件(不包括.dockerignore中的)將會(huì)被tar打包并傳送到docker daemon(一般在本機(jī)),從輸出我們可以到Sending build context...,最后有個(gè)Removing intermediate container的過(guò)程,可以通過(guò)--rm=false來(lái)保留容器。
TO-DO
docker build github.com/creack/docker-firefox失敗。

6. 給鏡像打上標(biāo)簽(tag)

tag的作用主要有兩點(diǎn):一是為鏡像起一個(gè)容易理解的名字,二是可以通過(guò)docker tag來(lái)重新指定鏡像的倉(cāng)庫(kù),這樣在push時(shí)自動(dòng)提交到倉(cāng)庫(kù)。

將同一IMAGE_ID的所有tag,合并為一個(gè)新的
# docker tag 195eb90b5349 seanlook/ubuntu:rm_test

新建一個(gè)tag,保留舊的那條記錄
# docker tag Registry/Repos:Tag New_Registry/New_Repos:New_Tag
7. 查看容器的信息container(ps)

docker ps命令可以查看容器的CONTAINER ID、NAMEIMAGE NAME、端口開(kāi)啟及綁定、容器啟動(dòng)后執(zhí)行的COMMNAD。經(jīng)常通過(guò)ps來(lái)找到CONTAINER_ID
docker ps 默認(rèn)顯示當(dāng)前正在運(yùn)行中的container
docker ps -a 查看包括已經(jīng)停止的所有容器
docker ps -l 顯示最新啟動(dòng)的一個(gè)容器(包括已停止的)

8. 查看容器中正在運(yùn)行的進(jìn)程(top)

容器運(yùn)行時(shí)不一定有/bin/bash終端來(lái)交互執(zhí)行top命令,查看container中正在運(yùn)行的進(jìn)程,況且還不一定有top命令,這是docker top 就很有用了。實(shí)際上在host上使用ps -ef|grep docker也可以看到一組類(lèi)似的進(jìn)程信息,把container里的進(jìn)程看成是host上啟動(dòng)docker的子進(jìn)程就對(duì)了。

9. 其他命令

docker還有一些如login、cp、logs、exportimport、load、kill等不是很常用的命令,比較簡(jiǎn)單,請(qǐng)參考官網(wǎng)。

參考

Official Command Line Reference

docker中文指南cli-widuu翻譯

Docker —— 從入門(mén)到實(shí)踐

Docker基礎(chǔ)與高級(jí)


原文鏈接地址:http://seanlook.com/2014/11/05/docker-command-best-use-2/


文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/26348.html

相關(guān)文章

  • docker專(zhuān)題(2):docker常用管理命令(上)

    摘要:在不存在的情況下,命令行下上去的會(huì)為我們創(chuàng)建為私有庫(kù),然而通過(guò)瀏覽器創(chuàng)建的默認(rèn)為公共庫(kù)。從啟動(dòng)一個(gè)命令首先會(huì)從特定的創(chuàng)之上一層可寫(xiě)的,然后通過(guò)命令來(lái)啟動(dòng)它。下文繼續(xù)專(zhuān)題常用管理命令下參考中文指南翻譯從入門(mén)到實(shí)踐基礎(chǔ)與高級(jí)原文鏈接地址 本文只記錄docker命令在大部分情境下的使用,如果想了解每一個(gè)選項(xiàng)的細(xì)節(jié),請(qǐng)參考官方文檔,這里只作為自己以后的備忘記錄下來(lái)。 根據(jù)自己的理解,總的來(lái)說(shuō)...

    Edison 評(píng)論0 收藏0
  • docker如何創(chuàng)建一個(gè)運(yùn)行后臺(tái)進(jìn)程的容器并同時(shí)提供shell終端

    摘要:目前只能重新啟動(dòng)一個(gè)容器停止上面的容器可以比較一下與中命令的變化但此時(shí)服務(wù)是停止的,并沒(méi)有在后臺(tái)運(yùn)行,訪問(wèn)無(wú)效。 只看標(biāo)題還不是很明顯,本文實(shí)現(xiàn)docker的這樣一種比較常用的功能:通過(guò)docker run啟動(dòng)一個(gè)容器后,容器中已經(jīng)運(yùn)行了一個(gè)后臺(tái)進(jìn)程(這里以監(jiān)聽(tīng)80端口的nginx為例),同時(shí)進(jìn)入一個(gè)shell終端可供操作,而不受限于只能在前臺(tái)運(yùn)行nginx與運(yùn)行shell終端之間的一...

    hikui 評(píng)論0 收藏0
  • 微服務(wù)實(shí)踐專(zhuān)題系列(二):基于Docker swarm mode集群的consul集群部署

    摘要:簡(jiǎn)介是微服務(wù)治理方案,提供注冊(cè)發(fā)現(xiàn)存儲(chǔ)健康檢查以及多數(shù)據(jù)中心部署的能力。重新設(shè)計(jì)架構(gòu)如下實(shí)施創(chuàng)建個(gè)虛擬機(jī)寫(xiě)一個(gè)腳本批量創(chuàng)建創(chuàng)建個(gè)虛擬機(jī)給這個(gè)腳本授權(quán),并執(zhí)行后可以看到虛擬機(jī)創(chuàng)建完成。集群中的節(jié)點(diǎn)是自動(dòng)加入網(wǎng)絡(luò)的。 consul簡(jiǎn)介 consul是微服務(wù)治理方案,提供注冊(cè)/發(fā)現(xiàn)、k/v存儲(chǔ)、健康檢查以及多數(shù)據(jù)中心部署的能力。 單節(jié)點(diǎn)安裝如下: docker pull consul:0.9...

    shaonbean 評(píng)論0 收藏0
  • Spring Boot 2 快速教程:WebFlux 集成 Mongodb(四)

    摘要:在配置下上面啟動(dòng)的配置數(shù)據(jù)庫(kù)名為賬號(hào)密碼也為。突出點(diǎn)是,即非阻塞的。四對(duì)象修改包里面的城市實(shí)體對(duì)象類(lèi)。修改城市對(duì)象,代碼如下城市實(shí)體類(lèi)城市編號(hào)省份編號(hào)城市名稱(chēng)描述注解標(biāo)記對(duì)應(yīng)庫(kù)表的主鍵或者唯一標(biāo)識(shí)符。 摘要: 原創(chuàng)出處 https://www.bysocket.com 「公眾號(hào):泥瓦匠BYSocket 」歡迎關(guān)注和轉(zhuǎn)載,保留摘要,謝謝! 這是泥瓦匠的第104篇原創(chuàng) 文章工程: JDK...

    Corwien 評(píng)論0 收藏0
  • 程序員筆記——如何編寫(xiě)優(yōu)雅的Dockerfile

    摘要:導(dǎo)讀要從容器化開(kāi)始,而容器又需要從開(kāi)始,本文將介紹如何寫(xiě)出一個(gè)優(yōu)雅的文件。只要記住以上三點(diǎn)就能寫(xiě)出不錯(cuò)的。執(zhí)行完成項(xiàng)目的構(gòu)建。 導(dǎo)讀 Kubernetes要從容器化開(kāi)始,而容器又需要從Dockerfile開(kāi)始,本文將介紹如何寫(xiě)出一個(gè)優(yōu)雅的Dockerfile文件。 文章主要內(nèi)容包括: Docker容器 Dockerfile 使用多階構(gòu)建 感謝公司提供大量機(jī)器資源及時(shí)間讓我們可以實(shí)踐...

    曹金海 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<