其他分享
首页 > 其他分享> > 使用docker镜像

使用docker镜像

作者:互联网

1、获取镜像

格式:

docker [image] pull NAME[:TAG]

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

docker pull ubuntu:18.04

2、查看镜像

docker images 或 docker image ls

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

示例:

[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

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

3、搜寻镜像

docker search [option] keyword

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

示例:

#搜索官方提供的带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,支持的选项包括:

示例:

使用镜像标签删除镜像

#删除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