ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

使用docker镜像

2022-04-07 10:01:18  阅读:165  来源: 互联网

标签:ago aliyun 使用 镜像 docker root latest


1、获取镜像

格式:

docker [image] pull NAME[:TAG]

其中,NAME是镜像仓库名称(用于区分镜像),TAG是镜像的标签(往往用来表示版本信息)。通常情况下,描述一个镜像需要包括”名称+标签”信息。示例:

docker pull ubuntu:18.04

2、查看镜像

docker images 或 docker image ls

images子命令只要支持如下选项:

  • -a,--all-true | false:列出所有(包括临时文件)镜像文件,默认为否;
  • --digests=true|false:列出镜像的数字摘要值,默认为否;
  • -f,--filters=[]:过滤列出的镜像,如dangling=true只显示没有被使用的镜像,也可知道带有特定标注的镜像等。

示例:

[root@aliyun ~]# docker images
REPOSITORY   TAG       IMAGE ID       CREATED        SIZE
busybox      latest    beae173ccac6   3 months ago   1.24MB
ubuntu       latest    ba6acccedd29   5 months ago   72.8MB

在列出信息中,可以看到以下几个字段信息:

  • REPOSITORY:来自于哪个仓库,比如Ubuntu表示Ubuntu系列的基础镜像
  • TAG:比如latest表示不同的版本信息,标签只是标记,并不能标识镜像内容
  • IMAGE ID:唯一标识镜像,如果两个镜像的ID相同,说明它们实际上指向了同一个镜像,只是具有不同的标签名称而已
  • CREATED:创建时间,说明镜像最后的更新时间
  • SIZE:镜像大小,优秀的镜像往往提交都较小。

3、搜寻镜像

docker search [option] keyword

支持的命令选项主要包括:

  • -f,--filter filter:过滤输出内容
  • --format string:格式化输出内容
  • --limit int:限制输出结果个数,默认为25个
  • --no-trunc:不截断输出结果

示例:

#搜索官方提供的带nginx关键字的镜像
[root@aliyun ~]# docker search --filter=is-official=true nginx
NAME      DESCRIPTION                STARS     OFFICIAL   AUTOMATED
nginx     Official build of Nginx.   16577     [OK]  
#搜索所有收藏数超过4的关键字包括tensorflow的镜像
[root@aliyun ~]# docker search --filter=stars=4 tensorflow
NAME                                  DESCRIPTION                                     STARS     OFFICIAL   AUTOMATED
tensorflow/tensorflow                 Official Docker images for the machine learn…   2003                 
tensorflow/serving                    Official images for TensorFlow Serving (http…   121                  
bitnami/tensorflow-serving            Bitnami Docker Image for TensorFlow Serving     20                   [OK]
tensorflow/syntaxnet                  Official docker images for running DRAGNN/Sy…   12                   
tensorflow/tf_grpc_server             Server for TensorFlow GRPC Distributed Runti…   8                    
armswdev/tensorflow-arm-neoverse-n1   Please use "armswdev/tensorflow-arm-neoverse"   8                    
ibmcom/tensorflow-ppc64le             Community supported ppc64le docker images fo…   6                    
tensorflow/tfx                                                                        6                    
tensorflow/tf_grpc_test_server        Testing server for GRPC-based distributed ru…   4                    
intel/intel-optimized-tensorflow      Containers with TensorFlow* optimized with o…   4                   

4、删除镜像

使用docker rmi或docker image rm命令可以删除镜像,格式为:

docker rmi IMAGE [IMAGE...]

其中IMAGE可以使标签或ID,支持的选项包括:

  • -f,-force:强制删除镜像,即使有容器依赖它
  • -no-prune:不要清理未带标签的父镜像

示例:

使用镜像标签删除镜像

#删除ubuntu:latest镜像
#删除前
[root@aliyun ~]# docker images
REPOSITORY   TAG       IMAGE ID       CREATED        SIZE
busybox      latest    beae173ccac6   3 months ago   1.24MB
ubuntu       latest    ba6acccedd29   5 months ago   72.8MB
ubuntu       18.04     5a214d77f5d7   6 months ago   63.1MB
[root@aliyun ~]# docker rmi ubuntu:18.04
Untagged: ubuntu:18.04
Untagged: ubuntu@sha256:0fedbd5bd9fb72089c7bbca476949e10593cebed9b1fb9edf5b79dbbacddd7d6
Deleted: sha256:5a214d77f5d747e6ed81632310baa6190301feeb875cf6bf9da560108fa09972
Deleted: sha256:824bf068fd3dc3ad967022f187d85250eb052f61fe158486b2df4e002f6f984e
#删除后
[root@aliyun ~]# docker images
REPOSITORY   TAG       IMAGE ID       CREATED        SIZE
busybox      latest    beae173ccac6   3 months ago   1.24MB
ubuntu       latest    ba6acccedd29   5 months ago   72.8MB

注:当镜像只剩下一个标签的时候,再使用docker rmi命令会彻底删除镜像

使用镜像ID删除镜像

[root@aliyun ~]# docker rmi ba6acccedd29
Untagged: ubuntu:latest
Untagged: ubuntu@sha256:626ffe58f6e7566e00254b638eb7e0f3b11d4da9675088f4781a50ae288f3322
Deleted: sha256:ba6acccedd2923aee4c2acc6a23780b14ed4b8a5fa4e14e252a23b846df9b6c1
Deleted: sha256:9f54eef412758095c8079ac465d494a2872e02e90bf1fb5f12a1641c0d1bb78b

注:当使用镜像ID的方式来执行docker rmi删除动作时,会先尝试删除所有只想该镜像的标签,然后再删除该镜像文件本身

5、创建镜像

5.1、基于已有容器创建

使用docker [contrainer] commit 命令,格式为:

docker [container] commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]

主要选项包括:

-a,--author=””:作者信息

-c,--change=[]:提交的时候执行dockerfile指令,包括CMD|ENTRYPOINT|ENV|EXPOSE|LABEL|ONBUILD|USER|VOLUME|WORKDIR等

-m,--message="":提交消息

-p,--pause=true:提交时暂停容器运行

示例:

[root@aliyun ~]# docker run -it busybox:latest
~ # pwd
/root
~ # touch test.txt
~ # exit

使用commit命令创建镜像

#查看容器ID
[root@aliyun ~]# docker ps -a
CONTAINER ID   IMAGE            COMMAND   CREATED         STATUS                          PORTS     NAMES
4a9bdcdb2e25   busybox:latest   "sh"      2 minutes ago   Exited (0) About a minute ago             sharp_rosalind
#创建镜像
[root@aliyun ~]# docker commit -m "Add a test.txt" -a "Torres" 4a9bdcdb2e25 test:0.1
sha256:516006855d21e2afef59462dfeb0c0ec49a84fa0d8ac4f8d1d97df98decc9110
#查看镜像
[root@aliyun ~]# docker images
REPOSITORY   TAG       IMAGE ID       CREATED         SIZE
test         0.1       516006855d21   7 seconds ago   1.24MB
busybox      latest    beae173ccac6   3 months ago    1.24MB
wordpress    latest    c3c92cc3dcb1   3 months ago    616MB
node         latest    a283f62cb84b   3 months ago    993MB
#验证
[root@aliyun ~]# docker run -it test:0.1
/ # pwd
/
/ # cd 
~ # pwd
/root
~ # ls
test.txt
~ # 

5.2、使用Dockerfile创建

示例:

FROM node
MAINTAINER Taolei
RUN git clone -q https://github.com/docker-in-practice/todo.git
WORKDIR todo
RUN npm install > /dev/null
EXPOSE 8000
CMD ["npm","start"]

6、存出和载入镜像

6.1、存出镜像

如果需要导出镜像到本地,可使用docker [image] save命令。该命令支持-o、-output string参数,导出镜像到指定文件中。

例如,将busybox镜像导出为文件busybox.tar

[root@aliyun ~]# docker images
REPOSITORY   TAG       IMAGE ID       CREATED        SIZE
busybox      latest    beae173ccac6   3 months ago   1.24MB
wordpress    latest    c3c92cc3dcb1   3 months ago   616MB
node         latest    a283f62cb84b   3 months ago   993MB
[root@aliyun ~]# docker save -o busybox.tar busybox:latest
[root@aliyun ~]# ll
总用量 1444
-rw------- 1 root root 1468416 4月   7 09:42 busybox.tar
drwxr-xr-x 3 root root    4096 4月   2 10:38 interview
drwxr-xr-x 2 root root    4096 3月  24 15:04 tools

6.2、载入镜像

可使用docker [image] load将导出的tar文件再导入到本地镜像库。支持-i、-input string选项,从指定文件中导入镜像内容。示例

#先删除原有镜像
[root@aliyun ~]# docker rmi -f busybox:latest
Untagged: busybox:latest
Untagged: busybox@sha256:5acba83a746c7608ed544dc1533b87c737a0b0fb730301639a0179f9344b1678
Deleted: sha256:beae173ccac6ad749f76713cf4440fe3d21d1043fe616dfbe30775815d1d0f6a
#验证是否删除成功
[root@aliyun ~]# docker images
REPOSITORY   TAG       IMAGE ID       CREATED        SIZE
wordpress    latest    c3c92cc3dcb1   3 months ago   616MB
node         latest    a283f62cb84b   3 months ago   993MB
#导入镜像
[root@aliyun ~]# docker load -i busybox.tar
Loaded image: busybox:latest
#验证效果
[root@aliyun ~]# docker images
REPOSITORY   TAG       IMAGE ID       CREATED        SIZE
busybox      latest    beae173ccac6   3 months ago   1.24MB
wordpress    latest    c3c92cc3dcb1   3 months ago   616MB
node         latest    a283f62cb84b   3 months ago   993MB

7、上传镜像

可使用docker [image] push命令上传镜像到仓库,默认上传到docker hub官方仓库(需登陆)。命令格式为:

docker [image] push NAME[:TAG] | [REGISTRY_HOST[:REGISTRY_PORT]/]NAME[:TAG]

示例,用户上传本地的test:0.1镜像

[root@aliyun ~]# docker tag test:0.1 user/test:0.1
[root@aliyun ~]# docker push user/test:0.1
The push refers to a repository [docker.io/user/test]
Sending image list

Please login prior to push:
Username:
Password:
Email:

首次上传时,会提示输入登陆信息或进行注册,之后登陆信息会记录到本地~/.docker目录下。

标签:ago,aliyun,使用,镜像,docker,root,latest
来源: https://www.cnblogs.com/Torres-tao/p/16110910.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有