镜像操作命令
**使用tag命令添加鏡像標(biāo)簽 **
**為了方便在后續(xù)工作中使用特定鏡像,還可以使用docker tag命令來為本地鏡像任 意添加新的標(biāo)簽。 例如,添加一個新的myubuntu: latest鏡像標(biāo)簽: **
docker tag ubuntu:latest myubuntu:latest再次使用docker images列出本地主機(jī)上鏡像信息, 可以看到多了一個myubuntu: latest標(biāo)簽的鏡像
**用戶就可以直接使用myubuntu:latest來表示這個鏡像了。 **
**細(xì)心的讀者可能注意到, 這些myubuntu:latest鏡像的ID跟ubuntu:latest是 完全一致的,它們實(shí)際上指向了同一個鏡像文件,只是別名不同而巳。docker tag命令添 加的標(biāo)簽實(shí)際上起到了類似鏈接的作用。 **
使用inspect命令查看詳細(xì)信息
docker inspect 鏡像名搜索鏡像
docker search 鏡像名刪除和清理鏡像
- 使用標(biāo)簽刪除鏡像(只刪除一個)
- 使用鏡像ID來刪除鏡像(全部刪除包含標(biāo)簽)
- 加上參數(shù)-f 強(qiáng)制刪除,不管是否有容器依賴
- docker image prune -f-a :刪除所有無用鏡像 -filter filter:只清理符合給定過濾器的鏡像 -f,-force:強(qiáng)制刪除鏡像,而不進(jìn)行提示確認(rèn)
創(chuàng)建鏡像
**創(chuàng)建鏡像的方法主要有三種: 基于已有鏡像的容器創(chuàng)建、 基于本地模板導(dǎo)入、 基于 Dockerfile創(chuàng)建。 **
本節(jié)主要介紹 Docker的 commit、 ******import**和 build 子命令。
1.基于已有容器創(chuàng)建(commit)
docker commit [options] container [repository[:tag]]#主要選項(xiàng)包括 -a, --author="" :作者信息 -c, --change=[] :提交的時候執(zhí)行Dockerfile指令, 包括CMD | ENTRYPOINT | ENV | EXPOSE| LABEL | ONBUILD | USER| VOLUME | WORKDIR等; -m, --message= 11 11: 提交消息; -p, --pause式rue: 提交時暫停容器運(yùn)行。**下面將演示如何使用該命令創(chuàng)建一個新鏡像。 **
首先, 啟動一個鏡像, 并在其中進(jìn)行修改操作。例如, 創(chuàng)建一個test文件, 之后退出,
$ docker run -it ubuntu:18.04 /bin/bash #進(jìn)入容器 root@a925cb40b3f0:/# touch test root@a925cb40b3f0:/# exit記住容器的 ID為a925cb40b3£0。 此時該容器與原 ubuntu:18.04 鏡像相比, 已經(jīng)發(fā)生了改變, 可以使用
**docker [container] commit****命令來提交為一個新的鏡像。提交時可以使用 ID 或名稱來指定容器: **
$ docker [container] commit -m "Added a new file" -a "Docker Newbee" a925cb40b3f0 test:0.1**順利的話, 會返回新創(chuàng)建鏡像的 ID 信息, 例如9e9c814023bcffc3e67e892a235a fe6lb02f66a947d2747f724bd317dda02f27。 **
此時查看本地鏡像列表, 會發(fā)現(xiàn)新創(chuàng)建的鏡像已經(jīng)存在了:
$ docker images2.基于本地模板導(dǎo)入**(import)**
**用戶也可以直接從一個操作系統(tǒng)模板文件導(dǎo)人一個鏡像,主要使用 **
docker [image] import [options] file | url | -[repository[:tag]]**要直接導(dǎo)人一個鏡像,可以使用 OpenVZ 提供的模板來創(chuàng)建,或者用其他已導(dǎo)出的鏡像 模板來創(chuàng)建。 **
**OPENVZ 模板的下載地址為 http://openvz.org/Download/templates/precreated。 **
例如,下載了 ubuntu-18.04 的模板壓縮包,之后使用以下命令導(dǎo)人即可:
$cat ubuntu-18.04-x86_64-minimal.tar.gz I docker import - ubuntu:lB.04然后查看新導(dǎo)人的鏡像,已經(jīng)在本地存在了 :
$ docker images3.基于 Dockerfile創(chuàng)建**(build)**
基于 Dockerfile 創(chuàng)建是****最常見******的方式。 Dockerfile 是一個文本文件,利用給定的指令描述基于某個父鏡像創(chuàng)建新鏡像的過程。 **
下面給出 Dockerfile 的一個簡單示例,基于 debian:stretch-slim鏡像安裝 Python 3 環(huán)境,構(gòu)成一個新的 python:3 鏡像:
FROM debian:stretch-slim LABEL version;” 1 . 。 ” maintainer=” docker user <docker_user@github>” RUN apt-get update && \apt-get install -y python3 && \apt-get clean && \rm -rf /var/lib/apt/lists/***創(chuàng)建鏡像的過程可以使用 **
docker [image] build編譯成功后本地將多出一 個 python : 3 鏡像:
$ docker [image] build -t python:3 Successful ly built 4b10f46eacc8 Successfully tagged python:3 $ docker imageslgrep python python 3 4b10f46eacc8 About a minute ago 95.lMB存入和載入鏡像
**本節(jié)主要介紹 Docker 鏡像的 save 和 load 子命令。 用戶可以使用 **
docker [image] save docker [image] load命令來存出和載人鏡像。
存出鏡像:
**如果要導(dǎo)出鏡像到本地文件,可以使用 **
docker [image] save**該命令支持 -o、 -output string 參數(shù), 導(dǎo)出鏡像到指定的文件中。 **
例如,導(dǎo)出本地的 ubuntu:lS.04 鏡像為文件 ubuntu 18.04.tar ,如下所示 :
$ docker images $ docker save -o ubuntu 18 04 tar ubuntu:18 .04之后,用戶就可以通過復(fù)制 ubuntu 18.04.tar 文件將該鏡像分享給他人。
載入鏡像
**可以使用 **
docker [image] load將導(dǎo)出的 tar 文件再導(dǎo)人到本地鏡像庫。支持****-i、-input、string****選項(xiàng),從指定文件中讀人鏡像內(nèi)容。
** 例如,從文件 ubuntu 18.04.tar 導(dǎo)人鏡像到本地鏡像列表,如下所示:**
$ docker load -i ubuntu_18 04 tar 或者: $ docker load < ubuntu_18 04 tar這將導(dǎo)人鏡像及其相關(guān)的元數(shù)據(jù)信息(包括標(biāo)簽等)。 導(dǎo)人成功后,可以使用
docker images** 命令進(jìn)行查看, 與原鏡像一致。**
上傳鏡像
**本節(jié)主要介紹 Docker 鏡像的 push 子命令。 可以使用 **
docker [image] push命令上 傳鏡像到倉庫,默認(rèn)上傳到 Docker Hub 官方倉庫(需要登錄)。
命令格式為
docker [image] push NAME[:TAG] | [REGISTRY_PORT[:REGISTRY_PORT]/]NAME[:TAG]**用戶在 Docker Hub 網(wǎng)站注冊后可以上傳自制的鏡像。 例如,用戶 user 上傳本地的 test :latest 鏡像,可以先添加新的標(biāo)簽 **
**user/test:latest , 然后用 **
docker [image] push命令上傳鏡像:
$ docker tag test:latest user/test :latest $ docker push user/test:latest The push refers to a repository [docker.io/user/test] Sending image list Please login prior to push: Username : Password: Email :第一次上傳時,會提示輸入登錄信息或進(jìn)行注冊,之后登錄信息會記錄到本地**~/ . docker****** 目錄下。
小結(jié):
本章具體介紹了圍繞 Docker 鏡像的一系列重要命令操作,包括獲取、查看、 搜索、 刪 除、創(chuàng)建、存出和載入、上傳等。 讀者可以使用 docker image help 命令查看 Docker 支 持的鏡像操作子命令。 鏡像是使用 Docker 的前提,也是最基本的資源。 所以,在平時的 Docker 使用中, 要注 意積累自己定制的鏡像文件,并將自己創(chuàng)建的高質(zhì)量鏡像分享到社區(qū)中。 在后續(xù)章節(jié),筆者將通過更多案例介紹 Docker 鏡像的操作技巧。總結(jié)
- 上一篇: 中国科学院大学计算机学科评估,国科大30
- 下一篇: 音频:G723