非常詳細(xì)的Docker學(xué)習(xí)筆記_第1頁(yè)
非常詳細(xì)的Docker學(xué)習(xí)筆記_第2頁(yè)
非常詳細(xì)的Docker學(xué)習(xí)筆記_第3頁(yè)
非常詳細(xì)的Docker學(xué)習(xí)筆記_第4頁(yè)
非常詳細(xì)的Docker學(xué)習(xí)筆記_第5頁(yè)
已閱讀5頁(yè),還剩46頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、閱讀目錄· 1.1 Docker 守護(hù)進(jìn)程 · 1.2 Docker 客戶端 · 1.3 Docker 內(nèi)部 · 1.4 libcontainer · 1.5 命名空間Namespaces · 1.6 資源配額cgroups · 3.1 Search images · 3.2 Pull images · 3.3 Running an interactive shell · 3.4 相關(guān)快捷鍵 · 4.1 docker help · 4.2 docker search 

2、3; 4.3 docker info · 4.4 docker pull && docker push · 4.5 docker images · 4.6 docker rmi · 4.7 docker run · 4.8 docker start|stop|kill. . · 4.9 Docker 1.3 新增特性和命令 · 4.10 Docker 1.5 新特性 · 5.1 自動(dòng)映射端口 · 5.2 綁定端口到指定接口 · 6.1 Docker 四種網(wǎng)絡(luò)模式 · 6

3、.2 列出當(dāng)前主機(jī)網(wǎng)橋 · 6.3 查看當(dāng)前 docker0 ip · 6.4 運(yùn)行一個(gè)容器 · 6.5 不同主機(jī)間容器通信 · 7.1 FROM · 7.2 MAINTAINER · 7.3 CMD · 7.4 EXPOSE · 7.5 ENV · 7.6 ADD · 7.7 COPY · 7.8 ENTRYPOINT · 7.9 VOLUME · 7.10 USER · 7.11 WORKDIR · 7.12 ONBUILD · 7

4、.13 Dockerfile Examples · 7.14 docker build · 7.15 dockerfile 最佳實(shí)踐 · 8.1 數(shù)據(jù)卷 · 8.2 創(chuàng)建和掛載一個(gè)數(shù)據(jù)卷容器 · 8.3 備份、恢復(fù)或遷移數(shù)據(jù)卷 · 8.4 刪除 Volumes · 9.1 容器命名 · 9.2 鏈接容器 · 10.1 快速構(gòu)建 · 10.2 不使用容器構(gòu)建 registry · 10.3 提交指定容器到私有庫(kù) 一、Docker 簡(jiǎn)介 Docker 兩個(gè)主要部件: · Dock

5、er: 開(kāi)源的容器虛擬化平臺(tái) · Docker Hub: 用于分享、管理 Docker 容器的 Docker SaaS 平臺(tái) - Docker Hub Docker 使用客戶端-服務(wù)器 (C/S) 架構(gòu)模式。Docker 客戶端會(huì)與 Docker 守護(hù)進(jìn)程進(jìn)行通信。Docker 守護(hù)進(jìn)程會(huì)處理復(fù)雜繁重的任務(wù),例如建立、運(yùn)行、發(fā)布你的 Docker 容器。Docker 客戶端和守護(hù)進(jìn)程可以運(yùn)行在同一個(gè)系統(tǒng)上,當(dāng)然你也可以使用 Docker 客戶端去連接一個(gè)遠(yuǎn)程的 Docker 守護(hù)進(jìn)程。Docker 客戶端和守護(hù)進(jìn)程之間通過(guò) socket 或者 RESTful API 進(jìn)行通信。 1.

6、1 Docker 守護(hù)進(jìn)程 如上圖所示,Docker 守護(hù)進(jìn)程運(yùn)行在一臺(tái)主機(jī)上。用戶并不直接和守護(hù)進(jìn)程進(jìn)行交互,而是通過(guò) Docker 客戶端間接和其通信。 回到頂部1.2 Docker 客戶端 Docker 客戶端,實(shí)際上是 docker 的二進(jìn)制程序,是主要的用戶與 Docker 交互方式。它接收用戶指令并且與背后的 Docker 守護(hù)進(jìn)程通信,如此來(lái)回往復(fù)。 回到頂部1.3 Docker 內(nèi)部 要理解 Docker 內(nèi)部構(gòu)建,需要理解以下三種部件: · Docker 鏡像 - Docker images · Docker 倉(cāng)庫(kù) - Docker registeries

7、 · Docker 容器 - Docker containers Docker 鏡像 Docker 鏡像是 Docker 容器運(yùn)行時(shí)的只讀模板,每一個(gè)鏡像由一系列的層 (layers) 組成。Docker 使用 UnionFS 來(lái)將這些層聯(lián)合到單獨(dú)的鏡像中。UnionFS 允許獨(dú)立文件系統(tǒng)中的文件和文件夾(稱之為分支)被透明覆蓋,形成一個(gè)單獨(dú)連貫的文件系統(tǒng)。正因?yàn)橛辛诉@些層的存在,Docker 是如此的輕量。當(dāng)你改變了一個(gè) Docker 鏡像,比如升級(jí)到某個(gè)程序到新的版本,一個(gè)新的層會(huì)被創(chuàng)建。因此,不用替換整個(gè)原先的鏡像或者重新建立(在使用虛擬機(jī)的時(shí)候你可能會(huì)這么做),只是一個(gè)新 的

8、層被添加或升級(jí)了。現(xiàn)在你不用重新發(fā)布整個(gè)鏡像,只需要升級(jí),層使得分發(fā) Docker 鏡像變得簡(jiǎn)單和快速。 Docker 倉(cāng)庫(kù) Docker 倉(cāng)庫(kù)用來(lái)保存鏡像,可以理解為代碼控制中的代碼倉(cāng)庫(kù)。同樣的,Docker 倉(cāng)庫(kù)也有公有和私有的概念。公有的 Docker 倉(cāng)庫(kù)名字是 Docker Hub。Docker Hub 提供了龐大的鏡像集合供使用。這些鏡像可以是自己創(chuàng)建,或者在別人的鏡像基礎(chǔ)上創(chuàng)建。Docker 倉(cāng)庫(kù)是 Docker 的分發(fā)部分。 Docker 容器 Docker 容器和文件夾很類似,一個(gè)Docker容器包含了所有的某個(gè)應(yīng)用運(yùn)行所需要的環(huán)境。每一個(gè) Docker 容器都是從 Dock

9、er 鏡像創(chuàng)建的。Docker 容器可以運(yùn)行、開(kāi)始、停止、移動(dòng)和刪除。每一個(gè) Docker 容器都是獨(dú)立和安全的應(yīng)用平臺(tái),Docker 容器是 Docker 的運(yùn)行部分。 回到頂部1.4 libcontainer Docker 從 0.9 版本開(kāi)始使用 libcontainer 替代 lxc,libcontainer 和 Linux 系統(tǒng)的交互圖如下: · 圖片來(lái)源: Docker 0.9: introducing execution drivers and libcontainer 回到頂部1.5 命名空間Namespaces pid namespace 不同用戶的進(jìn)程就是通過(guò) p

10、id namespace 隔離開(kāi)的,且不同 namespace 中可以有相同 PID。具有以下特征: · 每個(gè) namespace 中的 pid 是有自己的 pid=1 的進(jìn)程(類似 /sbin/init 進(jìn)程) · 每個(gè) namespace 中的進(jìn)程只能影響自己的同一個(gè) namespace 或子 namespace 中的進(jìn)程 · 因?yàn)?/proc 包含正在運(yùn)行的進(jìn)程,因此在 container 中的 pseudo-filesystem 的 /proc 目錄只能看到自己 namespace 中的進(jìn)程 · 因?yàn)?namespace 允許嵌套,父 names

11、pace 可以影響子 namespace 的進(jìn)程,所以子 namespace 的進(jìn)程可以在父 namespace 中看到,但是具有不同的 pid 參考文檔:Introduction to Linux namespaces Part 3: PID mnt namespace 類似 chroot,將一個(gè)進(jìn)程放到一個(gè)特定的目錄執(zhí)行。mnt namespace 允許不同 namespace 的進(jìn)程看到的文件結(jié)構(gòu)不同,這樣每個(gè) namespace 中的進(jìn)程所看到的文件目錄就被隔離開(kāi)了。同 chroot 不同,每個(gè) namespace 中的 container 在 /proc/mounts 的信息只包含所

12、在 namespace 的 mount point。 net namespace 網(wǎng)絡(luò)隔離是通過(guò) net namespace 實(shí)現(xiàn)的, 每個(gè) net namespace 有獨(dú)立的 network devices, IP addresses, IP routing tables, /proc/net 目錄。這樣每個(gè) container 的網(wǎng)絡(luò)就能隔離開(kāi)來(lái)。 docker 默認(rèn)采用 veth 的方式將 container 中的虛擬網(wǎng)卡同 host 上的一個(gè) docker bridge 連接在一起。 參考文檔:Introduction to Linux namespaces Part 5: NET

13、uts namespace UTS ("UNIX Time-sharing System") namespace 允許每個(gè) container 擁有獨(dú)立的 hostname 和 domain name, 使其在網(wǎng)絡(luò)上可以被視作一個(gè)獨(dú)立的節(jié)點(diǎn)而非 Host 上的一個(gè)進(jìn)程。 參考文檔:Introduction to Linux namespaces Part 1: UTS ipc namespace container 中進(jìn)程交互還是采用 Linux 常見(jiàn)的進(jìn)程間交互方法 (interprocess communication - IPC), 包括常見(jiàn)的信號(hào)量、消息隊(duì)列和共享內(nèi)

14、存。然而同 VM 不同,container 的進(jìn)程間交互實(shí)際上還是 host 上具有相同 pid namespace 中的進(jìn)程間交互,因此需要在IPC資源申請(qǐng)時(shí)加入 namespace 信息 - 每個(gè) IPC 資源有一個(gè)唯一的 32bit ID。 參考文檔:Introduction to Linux namespaces Part 2: IPC user namespace 每個(gè) container 可以有不同的 user 和 group id, 也就是說(shuō)可以以 container 內(nèi)部的用戶在 container 內(nèi)部執(zhí)行程序而非 Host 上的用戶。 有了以上 6 種 namespace

15、從進(jìn)程、網(wǎng)絡(luò)、IPC、文件系統(tǒng)、UTS 和用戶角度的隔離,一個(gè) container 就可以對(duì)外展現(xiàn)出一個(gè)獨(dú)立計(jì)算機(jī)的能力,并且不同 container 從 OS 層面實(shí)現(xiàn)了隔離。 然而不同 namespace 之間資源還是相互競(jìng)爭(zhēng)的,仍然需要類似 ulimit 來(lái)管理每個(gè) container 所能使用的資源 - cgroup。 Reference · Docker Getting Start: Related Knowledge · Docker 介紹以及其相關(guān)術(shù)語(yǔ)、底層原理和技術(shù) 回到頂部1.6 資源配額cgroups cgroups 實(shí)現(xiàn)了對(duì)資源的配額和度量。 cgro

16、ups 的使用非常簡(jiǎn)單,提供類似文件的接口,在 /cgroup 目錄下新建一個(gè)文件夾即可新建一個(gè) group,在此文件夾中新建 task 文件,并將 pid 寫入該文件,即可實(shí)現(xiàn)對(duì)該進(jìn)程的資源控制。具體的資源配置選項(xiàng)可以在該文件夾中新建子 subsystem ,子系統(tǒng)前綴.資源項(xiàng) 是典型的配置方法, 如 memory.usageinbytes 就定義了該 group 在 subsystem memory 中的一個(gè)內(nèi)存限制選項(xiàng)。 另外,cgroups 中的 subsystem 可以隨意組合,一個(gè) subsystem 可以在不同的 group 中,也可以一個(gè) group 包含多個(gè) subsyste

17、m - 也就是說(shuō)一個(gè) subsystem。 · memory o 內(nèi)存相關(guān)的限制 · cpu o 在 cgroup 中,并不能像硬件虛擬化方案一樣能夠定義 CPU 能力,但是能夠定義 CPU 輪轉(zhuǎn)的優(yōu)先級(jí),因此具有較高 CPU 優(yōu)先級(jí)的進(jìn)程會(huì)更可能得到 CPU 運(yùn)算。 通過(guò)將參數(shù)寫入 cpu.shares ,即可定義改 cgroup 的 CPU 優(yōu)先級(jí) - 這里是一個(gè)相對(duì)權(quán)重,而非絕對(duì)值 · blkio o block IO 相關(guān)的統(tǒng)計(jì)和限制,byte/operation 統(tǒng)計(jì)和限制 (IOPS 等),讀寫速度限制等,但是這里主要統(tǒng)計(jì)的都是同步 IO ·

18、 devices o 設(shè)備權(quán)限限制 參考文檔:how to use cgroup 二、Docker 安裝 docker 的相關(guān)安裝方法這里不作介紹,具體安裝參考 官檔 獲取當(dāng)前 docker 版本 $ sudo docker versionClient version: 1.3.2Client API version: 1.15Go version (client): go1.3.3Git commit (client): 39fa2fa/1.3.2OS/Arch (client): linux/amd64Server version: 1.3.2Server API version: 1.1

19、5Go version (server): go1.3.3Git commit (server): 39fa2fa/1.3.2三、Docker 基礎(chǔ)用法 Docker HUB : Docker鏡像首頁(yè),包括官方鏡像和其它公開(kāi)鏡像 因?yàn)閲?guó)情的原因,國(guó)內(nèi)下載 Docker HUB 官方的相關(guān)鏡像比較慢,可以使用 鏡像,鏡像保持和官方一致,關(guān)鍵是速度塊,推薦使用。 回到頂部3.1 Search images $ sudo docker search ubuntu回到頂部3.2 Pull images $ sudo docker pull ubuntu # 獲取 ubuntu 官方鏡像 $ sudo

20、docker images # 查看當(dāng)前鏡像列表 回到頂部3.3 Running an interactive shell $ sudo docker run -i -t ubuntu:14.04 /bin/bash· docker run - 運(yùn)行一個(gè)容器 · -t - 分配一個(gè)(偽)tty (link is external) · -i - 交互模式 (so we can interact with it) · ubuntu:14.04 - 使用 ubuntu 基礎(chǔ)鏡像 14.04 · /bin/bash - 運(yùn)行命令 bash shell

21、 注: ubuntu 會(huì)有多個(gè)版本,通過(guò)指定 tag 來(lái)啟動(dòng)特定的版本 image:tag $ sudo docker ps # 查看當(dāng)前運(yùn)行的容器, ps -a 列出當(dāng)前系統(tǒng)所有的容器 CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES6c9129e9df10 ubuntu:14.04 /bin/bash 6 minutes ago Up 6 minutes cranky_babbage回到頂部3.4 相關(guān)快捷鍵 · 退出:Ctrl-Dorexit · detach:Ctrl-P + Ctrl-Q · at

22、tach:docker attach CONTAINER-ID 四、Docker 命令幫助 回到頂部4.1 docker help docker command $ sudo docker # docker 命令幫助Commands: attach Attach to a running container # 當(dāng)前 shell 下 attach 連接指定運(yùn)行鏡像 build Build an image from a Dockerfile # 通過(guò) Dockerfile 定制鏡像 commit Create a new image from a container's changes

23、 # 提交當(dāng)前容器為新的鏡像 cp Copy files/folders from the containers filesystem to the host path # 從容器中拷貝指定文件或者目錄到宿主機(jī)中 create Create a new container # 創(chuàng)建一個(gè)新的容器,同 run,但不啟動(dòng)容器 diff Inspect changes on a container's filesystem # 查看 docker 容器變化 events Get real time events from the server # 從 docker 服務(wù)獲取容器實(shí)時(shí)事件 exe

24、c Run a command in an existing container # 在已存在的容器上運(yùn)行命令 export Stream the contents of a container as a tar archive # 導(dǎo)出容器的內(nèi)容流作為一個(gè) tar 歸檔文件對(duì)應(yīng) import history Show the history of an image # 展示一個(gè)鏡像形成歷史 images List images # 列出系統(tǒng)當(dāng)前鏡像 import Create a new filesystem image from the contents of a tarball # 從t

25、ar包中的內(nèi)容創(chuàng)建一個(gè)新的文件系統(tǒng)映像對(duì)應(yīng) export info Display system-wide information # 顯示系統(tǒng)相關(guān)信息 inspect Return low-level information on a container # 查看容器詳細(xì)信息 kill Kill a running container # kill 指定 docker 容器 load Load an image from a tar archive # 從一個(gè) tar 包中加載一個(gè)鏡像對(duì)應(yīng) save login Register or Login to the docker registry

26、 server # 注冊(cè)或者登陸一個(gè) docker 源服務(wù)器 logout Log out from a Docker registry server # 從當(dāng)前 Docker registry 退出 logs Fetch the logs of a container # 輸出當(dāng)前容器日志信息 port Lookup the public-facing port which is NAT-ed to PRIVATE_PORT # 查看映射端口對(duì)應(yīng)的容器內(nèi)部源端口 pause Pause all processes within a container # 暫停容器 ps List conta

27、iners # 列出容器列表 pull Pull an image or a repository from the docker registry server # 從docker鏡像源服務(wù)器拉取指定鏡像或者庫(kù)鏡像 push Push an image or a repository to the docker registry server # 推送指定鏡像或者庫(kù)鏡像至docker源服務(wù)器 restart Restart a running container # 重啟運(yùn)行的容器 rm Remove one or more containers # 移除一個(gè)或者多個(gè)容器 rmi Remov

28、e one or more images # 移除一個(gè)或多個(gè)鏡像無(wú)容器使用該鏡像才可刪除,否則需刪除相關(guān)容器才可繼續(xù)或 -f 強(qiáng)制刪除 run Run a command in a new container # 創(chuàng)建一個(gè)新的容器并運(yùn)行一個(gè)命令 save Save an image to a tar archive # 保存一個(gè)鏡像為一個(gè) tar 包對(duì)應(yīng) load search Search for an image on the Docker Hub # 在 docker hub 中搜索鏡像 start Start a stopped containers # 啟動(dòng)容器 stop Stop

29、a running containers # 停止容器 tag Tag an image into a repository # 給源中鏡像打標(biāo)簽 top Lookup the running processes of a container # 查看容器中運(yùn)行的進(jìn)程信息 unpause Unpause a paused container # 取消暫停容器 version Show the docker version information # 查看 docker 版本號(hào) wait Block until a container stops, then print its exit cod

30、e # 截取容器停止時(shí)的退出狀態(tài)值Run 'docker COMMAND -help' for more information on a command.docker option Usage of docker: -api-enable-cors=false Enable CORS headers in the remote API # 遠(yuǎn)程 API 中開(kāi)啟 CORS 頭 -b, -bridge="" Attach containers to a pre-existing network bridge # 橋接網(wǎng)絡(luò) use 'none'

31、to disable container networking -bip="" Use this CIDR notation address for the network bridge's IP, not compatible with -b # 和 -b 選項(xiàng)不兼容,具體沒(méi)有測(cè)試過(guò) -d, -daemon=false Enable daemon mode # daemon 模式 -D, -debug=false Enable debug mode # debug 模式 -dns= Force docker to use specific DNS servers

32、# 強(qiáng)制 docker 使用指定 dns 服務(wù)器 -dns-search= Force Docker to use specific DNS search domains # 強(qiáng)制 docker 使用指定 dns 搜索域 -e, -exec-driver="native" Force the docker runtime to use a specific exec driver # 強(qiáng)制 docker 運(yùn)行時(shí)使用指定執(zhí)行驅(qū)動(dòng)器 -fixed-cidr="" IPv4 subnet for fixed IPs (ex: /16) thi

33、s subnet must be nested in the bridge subnet (which is defined by -b or -bip) -G, -group="docker" Group to assign the unix socket specified by -H when running in daemon mode use '' (the empty string) to disable setting of a group -g, -graph="/var/lib/docker" Path to use a

34、s the root of the docker runtime # 容器運(yùn)行的根目錄路徑 -H, -host= The socket(s) to bind to in daemon mode # daemon 模式下 docker 指定綁定方式tcp or 本地 socket specified using one or more tcp:/host:port, unix:/path/to/socket, fd:/* or fd:/socketfd. -icc=true Enable inter-container communication # 跨容器通信 -insecure-regist

35、ry= Enable insecure communication with specified registries (no certificate verification for HTTPS and enable HTTP fallback) (e.g., localhost:5000 or /16) -ip="" Default IP address to use when binding container ports # 指定監(jiān)聽(tīng)地址,默認(rèn)所有 ip -ip-forward=true Enable net.ipv4.ip_forw

36、ard # 開(kāi)啟轉(zhuǎn)發(fā) -ip-masq=true Enable IP masquerading for bridge's IP range -iptables=true Enable Docker's addition of iptables rules # 添加對(duì)應(yīng) iptables 規(guī)則 -mtu=0 Set the containers network MTU # 設(shè)置網(wǎng)絡(luò) mtu if no value is provided: default to the default route MTU or 1500 if no default route is availab

37、le -p, -pidfile="/var/run/docker.pid" Path to use for daemon PID file # 指定 pid 文件位置 -registry-mirror= Specify a preferred Docker registry mirror -s, -storage-driver="" Force the docker runtime to use a specific storage driver # 強(qiáng)制 docker 運(yùn)行時(shí)使用指定存儲(chǔ)驅(qū)動(dòng) -selinux-enabled=false Enable

38、selinux support # 開(kāi)啟 selinux 支持 -storage-opt= Set storage driver options # 設(shè)置存儲(chǔ)驅(qū)動(dòng)選項(xiàng) -tls=false Use TLS; implied by tls-verify flags # 開(kāi)啟 tls -tlscacert="/root/.docker/ca.pem" Trust only remotes providing a certificate signed by the CA given here -tlscert="/root/.docker/cert.pem"

39、Path to TLS certificate file # tls 證書文件位置 -tlskey="/root/.docker/key.pem" Path to TLS key file # tls key 文件位置 -tlsverify=false Use TLS and verify the remote (daemon: verify client, client: verify daemon) # 使用 tls 并確認(rèn)遠(yuǎn)程控制主機(jī) -v, -version=false Print version information and quit # 輸出 docker 版

40、本信息回到頂部4.2 docker search $ sudo docker search -helpUsage: docker search TERMSearch the Docker Hub for images # 從 Docker Hub 搜索鏡像 -automated=false Only show automated builds -no-trunc=false Don't truncate output -s, -stars=0 Only displays with at least xxx stars示例: $ sudo docker search -s 100 ubu

41、ntu # 查找 star 數(shù)至少為 100 的鏡像,找出只有官方鏡像 start 數(shù)超過(guò) 100,默認(rèn)不加 s 選項(xiàng)找出所有相關(guān) ubuntu 鏡像 NAME DESCRIPTION STARS OFFICIAL AUTOMATEDubuntu Official Ubuntu base image 425 OK 回到頂部4.3 docker info $ sudo docker info Containers: 1 # 容器個(gè)數(shù) Images: 22 # 鏡像個(gè)數(shù) Storage Driver: devicemapper # 存儲(chǔ)驅(qū)動(dòng) Pool Name: docker-8:17-32212

42、25728-pool Pool Blocksize: 65.54 kB Data file: /data/docker/devicemapper/devicemapper/data Metadata file: /data/docker/devicemapper/devicemapper/metadata Data Space Used: 1.83 GB Data Space Total: 107.4 GB Metadata Space Used: 2.191 MB Metadata Space Total: 2.147 GB Library Version: 1.02.84-RHEL7 (2

43、014-03-26) Execution Driver: native-0.2 # 存儲(chǔ)驅(qū)動(dòng) Kernel Version: 3.10.0-123.el7.x86_64Operating System: CentOS Linux 7 (Core) 回到頂部4.4 docker pull && docker push $ sudo docker pull -help # pull 拉取鏡像 Usage: docker pull OPTIONS NAME:TAG Pull an image or a repository from the registry -a, -all-tag

44、s=false Download all tagged images in the repository $ sudo docker push # push 推送指定鏡像 Usage: docker push NAME:TAG Push an image or a repository to the registry示例: $ sudo docker pull ubuntu # 下載官方 ubuntu docker 鏡像,默認(rèn)下載所有 ubuntu 官方庫(kù)鏡像 $ sudo docker pull ubuntu:14.04 # 下載指定版本 ubuntu 官方鏡像 $ sudo docker

45、push 00:5000/ubuntu # 推送鏡像庫(kù)到私有源可注冊(cè) docker 官方賬戶,推送到官方自有賬戶 $ sudo docker push 00:5000/ubuntu:14.04 # 推送指定鏡像到私有源 回到頂部4.5 docker images 列出當(dāng)前系統(tǒng)鏡像 $ sudo docker images -helpUsage: docker images OPTIONS NAME List images -a, -all=false Show all images (by default filter out the interme

46、diate image layers) # -a 顯示當(dāng)前系統(tǒng)的所有鏡像,包括過(guò)渡層鏡像,默認(rèn) docker images 顯示最終鏡像,不包括過(guò)渡層鏡像 -f, -filter= Provide filter values (i.e. 'dangling=true') -no-trunc=false Don't truncate output -q, -quiet=false Only show numeric IDs示例: $ sudo docker images # 顯示當(dāng)前系統(tǒng)鏡像,不包括過(guò)渡層鏡像 $ sudo docker images -a # 顯示當(dāng)前系

47、統(tǒng)所有鏡像,包括過(guò)渡層鏡像 $ sudo docker images ubuntu # 顯示當(dāng)前系統(tǒng) docker ubuntu 庫(kù)中的所有鏡像 REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZEubuntu 12.04 ebe4be4dd427 4 weeks ago 210.6 MBubuntu 14.04 e54ca5efa2e9 4 weeks ago 276.5 MBubuntu 14.04-ssh 6334d3ac099a 7 weeks ago 383.2 MB回到頂部4.6 docker rmi 刪除一個(gè)或者多個(gè)鏡像 $ sudo dock

48、er rmi -helpUsage: docker rmi IMAGE IMAGE. Remove one or more images -f, -force=false Force removal of the image # 強(qiáng)制移除鏡像不管是否有容器使用該鏡像 -no-prune=false Do not delete untagged parents # 不要?jiǎng)h除未標(biāo)記的父鏡像 回到頂部4.7 docker run $ sudo docker run -helpUsage: docker run OPTIONS IMAGE COMMAND ARG. Run a command in a

49、 new container -a, -attach= Attach to stdin, stdout or stderr. -c, -cpu-shares=0 CPU shares (relative weight) # 設(shè)置 cpu 使用權(quán)重 -cap-add= Add Linux capabilities -cap-drop= Drop Linux capabilities -cidfile="" Write the container ID to the file # 把容器 id 寫入到指定文件 -cpuset="" CPUs in which

50、 to allow execution (0-3, 0,1) # cpu 綁定 -d, -detach=false Detached mode: Run container in the background, print new container id # 后臺(tái)運(yùn)行容器 -device= Add a host device to the container (e.g. -device=/dev/sdc:/dev/xvdc) -dns= Set custom dns servers # 設(shè)置 dns -dns-search= Set custom dns search domains # 設(shè)

51、置 dns 域搜索 -e, -env= Set environment variables # 定義環(huán)境變量 -entrypoint="" Overwrite the default entrypoint of the image # ? -env-file= Read in a line delimited file of ENV variables # 從指定文件讀取變量值 -expose= Expose a port from the container without publishing it to your host # 指定對(duì)外提供服務(wù)端口 -h, -host

52、name="" Container host name # 設(shè)置容器主機(jī)名 -i, -interactive=false Keep stdin open even if not attached # 保持標(biāo)準(zhǔn)輸出開(kāi)啟即使沒(méi)有 attached -link= Add link to another container (name:alias) # 添加鏈接到另外一個(gè)容器 -lxc-conf= (lxc exec-driver only) Add custom lxc options -lxc-conf="lxc.cgroup.cpuset.cpus = 0,1" -m, -memory="" Memory

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論