日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

镜像操作命令

發(fā)布時間:2023/12/29 编程问答 41 豆豆
生活随笔 收集整理的這篇文章主要介紹了 镜像操作命令 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

#查看docker版本 docker version#查看docker信息 docker info#啟動docker服務(wù) systemctl start docker#設(shè)置開機(jī)自啟 systemctl enable docker#關(guān)閉開機(jī)自啟 systemctl disable docker#列出本機(jī)的所有image文件 docker images 或者 docker image ls#刪除image文件 docker image rm [imageName] 或者 docker rmi [imageName] -f, -force: 強(qiáng)制刪除鏡像, 即使有容器依賴它; -no-prune: 不要清理未帶標(biāo)簽的父鏡像。 #抓取鏡像(image) docker image pull [imageName] #例: docker image pull hello-world#抓取成功后,就可以在本機(jī)看到這個image文件了 docker image ls #運(yùn)行image文件 docker container run hello-world#注意,docker container run命令具有自動抓取 image 文件的功能。如果發(fā)現(xiàn)本地沒有指定的 image 文件,就會從倉庫自動抓取。因此,前面的docker image pull命令并不是必需的步驟。docker container run hello-world ? 等同于 docker image pull hell-world docker container run hello-world#hello-world運(yùn)行后容器會自動終止,有些不會自動終止的容器,可以用下面的命令 docker container kill [containID]#查看contain docker ps #查看正在運(yùn)行中的容器信息 docker ps -a #查看所有的容器信息 docker ps -q #只查看正在運(yùn)行中的容器id#image文件(鏡像)生成的容器(container)實(shí)例,本身也是一個文件,成為容器文件,也就是說一旦容器生成就會同時存在兩個文件:image文件和容器文件。而且關(guān)閉容器并不會刪除容器文件,只是容器停止運(yùn)行而已#列出正在運(yùn)行的容器 docker container ls 等同于 docker ps #列出所有容器 docker container ls --all 等同于 docker ps -a#終止運(yùn)行的容器文件,依然會占據(jù)硬盤空間,可以使用docker container rm命令刪除。 docker container rm [containerID] 等同于 docker rm [containerID]#啟動一個nginx容器,檢查能正確獲取鏡像并運(yùn)行 docker run -d -p 80:80 --name webserver nginxNginx 容器已經(jīng)在 0.0.0.0:80 啟動,并映射到 80 端口 。 打開瀏覽器訪問此地址#搜索鏡像 可以搜索Docker Hub官方倉庫中的鏡像,語法為 #docker serach [option] keyword -f,-filter filter:過濾輸出內(nèi)容 --format string:格式化輸出內(nèi)容 --limit int:限制輸出結(jié)果個數(shù),默認(rèn)為25個 --no-trunc:不截斷輸出結(jié)果#例如,搜索官方的帶 nginx關(guān)鍵字的鏡像 docker search --filter=is-official=true nginx#搜索所有收藏數(shù)超過 4 的關(guān)鍵詞包括 tensorflow 的鏡像: docker search --filter=stars=4 tensorflow#注意, 當(dāng)有該鏡像創(chuàng)建的容器存在時, 鏡像文件默認(rèn)是無法被刪除的, #先刪除依賴該鏡像的所有容器, 再來刪除鏡像#綁定容器的 8080 端口,并將其映射到本地主機(jī) 127.0.0.1 的 80 端口上。 docker run -p 127.0.0.1:80:8080/tcp ubuntu bash

**使用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 images

2.基于本地模板導(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 images

3.基于 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 鏡像的 saveload 子命令。 用戶可以使用 **

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é)

以上是生活随笔為你收集整理的镜像操作命令的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。