DOCKER学习_009:Docker的镜像管理

1 查看镜像

[root@docker-server3 ~]# docker image ls

REPOSITORY                TAG                 IMAGE ID            CREATED             SIZE
redis                     4.0                 e263c3a3ce1f        2 days ago          89.2MB
httpd                     2.4                 c2aa7e16edd8        3 days ago          165MB
centos                    7                   5e35e350aded        7 weeks ago         203MB
nginx                     latest              540a289bab6c        2 months ago        126MB
goodsmileduck/redis-cli   latest              4b2315bf1ad2        4 months ago        48.9MB

镜像的SIZE的是压缩后的大小,实际运行后的大小,要比这个SIZE大

2 镜像命名规范

无论我们对镜像做何种操作,首先它得有个名字。我们在前面使用docker run来运行容器的时候,就需要传递一个镜像名称,容器基于该镜像来运行。

一个完整的镜像名称由两部分组成:

<image name> = <repository>:[tag]

其中repository包含如下内容:

[Docker Registry地址/][项目目录/]<名称>

所以一个完整的镜像命名如下:

[Docker Registry地址/][项目目录/]<名称>:[标签]

当没指明镜像tag时,默认为latest,但latest没有任何特殊含义,在docker hub上很多repository将latest作为最新稳定版本的别名,但这只是一种约定,不是强制规定,一个repository可以有多个tag,而多个tag也可能对应同一个镜像

3 镜像的基本操作

拉取镜像

docker pull  镜像名,默认是从dokcer的仓库中拉取

[root@docker-server3 ~]# docker pull centos

Using default tag: latest
latest: Pulling from library/centos
729ec3a6ada3: Pull complete 
Digest: sha256:f94c1d992c193b3dc09e297ffd54d8a4f1dc946c37cbeceb26d35ce1647f88d9
Status: Downloaded newer image for centos:latest
docker.io/library/centos:latest

也可以指定位置拉取镜像

[root@docker-server3 ~]# docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/coredns:1.1.3

  • 指定仓库位置 registry.cn-hangzhou.aliyuncs.com
  • 路径:google_containers
  • 镜像名:coredns:1.1.3
1.1.3: Pulling from google_containers/coredns
88286f41530e: Pull complete 
9e8fb813cddc: Pull complete 
3ac8c130be3b: Pull complete 
Digest: sha256:d929e48a87979279307111fd28a52272d3fac0ed1dc8f2f53a9489be45e5f2eb
Status: Downloaded newer image for registry.cn-hangzhou.aliyuncs.com/google_containers/coredns:1.1.3
registry.cn-hangzhou.aliyuncs.com/google_containers/coredns:1.1.3

[root@docker-server3 ~]# docker image ls

REPOSITORY                                                    TAG                 IMAGE ID            CREATED             SIZE
redis                                                         4.0                 e263c3a3ce1f        2 days ago          89.2MB
httpd                                                         2.4                 c2aa7e16edd8        3 days ago          165MB
centos                                                        7                   5e35e350aded        7 weeks ago         203MB
nginx                                                         latest              540a289bab6c        2 months ago        126MB
centos                                                        latest              0f3e07c0138f        3 months ago        220MB
goodsmileduck/redis-cli                                       latest              4b2315bf1ad2        4 months ago        48.9MB
registry.cn-hangzhou.aliyuncs.com/google_containers/coredns   1.1.3               b3b94275d97c        19 months ago       45.6MB

4 获取镜像的详细信息

[root@docker-server3 ~]# docker inspect centos:latest

[
    {
        "Id": "sha256:0f3e07c0138fbe05abcb7a9cc7d63d9bd4c980c3f61fea5efa32e7c4217ef4da",
        "RepoTags": [
            "centos:latest"
        ],
        "RepoDigests": [
            "centos@sha256:f94c1d992c193b3dc09e297ffd54d8a4f1dc946c37cbeceb26d35ce1647f88d9"
        ],
        "Parent": "",
        "Comment": "",
        "Created": "2019-10-01T23:19:57.105928163Z",
        "Container": "711572e3c0c1ac06d5c13c4e668ec170b8ad8786b5f0949f884a5f7fd350d856",
        "ContainerConfig": {
            "Hostname": "711572e3c0c1",
            "Domainname": "",
            "User": "",
            "AttachStdin": false,
            "AttachStdout": false,
            "AttachStderr": false,
            "Tty": false,
            "OpenStdin": false,
            "StdinOnce": false,
            "Env": [
                "PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
            ],
            "Cmd": [
                "/bin/sh",
                "-c",
                "#(nop) ",
                "CMD [\"/bin/bash\"]"
            ],
            "ArgsEscaped": true,
            "Image": "sha256:c0bda62fdbad65a3c6a1843d293a3a47d8233115cc6d384e3cb07c53580a2b43",
            "Volumes": null,
            "WorkingDir": "",
            "Entrypoint": null,
            "OnBuild": null,
            "Labels": {
                "org.label-schema.build-date": "20190927",
                "org.label-schema.license": "GPLv2",
                "org.label-schema.name": "CentOS Base Image",
                "org.label-schema.schema-version": "1.0",
                "org.label-schema.vendor": "CentOS"
            }
        },
        "DockerVersion": "18.06.1-ce",
        "Author": "",
        "Config": {
            "Hostname": "",
            "Domainname": "",
            "User": "",
            "AttachStdin": false,
            "AttachStdout": false,
            "AttachStderr": false,
            "Tty": false,
            "OpenStdin": false,
            "StdinOnce": false,
            "Env": [
                "PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
            ],
            "Cmd": [
                "/bin/bash"
            ],
            "ArgsEscaped": true,
            "Image": "sha256:c0bda62fdbad65a3c6a1843d293a3a47d8233115cc6d384e3cb07c53580a2b43",
            "Volumes": null,
            "WorkingDir": "",
            "Entrypoint": null,
            "OnBuild": null,
            "Labels": {
                "org.label-schema.build-date": "20190927",
                "org.label-schema.license": "GPLv2",
                "org.label-schema.name": "CentOS Base Image",
                "org.label-schema.schema-version": "1.0",
                "org.label-schema.vendor": "CentOS"
            }
        },
        "Architecture": "amd64",
        "Os": "linux",
        "Size": 219583055,
        "VirtualSize": 219583055,
        "GraphDriver": {
            "Data": {
                "MergedDir": "/var/lib/docker/overlay2/166424768dce2d380cf1fe7cd570b2b72feb3b5768859101e5b5d46aa87ccc8d/merged",
                "UpperDir": "/var/lib/docker/overlay2/166424768dce2d380cf1fe7cd570b2b72feb3b5768859101e5b5d46aa87ccc8d/diff",
                "WorkDir": "/var/lib/docker/overlay2/166424768dce2d380cf1fe7cd570b2b72feb3b5768859101e5b5d46aa87ccc8d/work"
            },
            "Name": "overlay2"
        },
        "RootFS": {
            "Type": "layers",
            "Layers": [
                "sha256:9e607bb861a7d58bece26dd2c02874beedd6a097c1b6eca5255d5eb0d2236983"
            ]
        },
        "Metadata": {
            "LastTagTime": "0001-01-01T00:00:00Z"
        }
    }
]

5 镜像的删除操作

[root@docker-server3 ~]# docker rmi 0f3e07c0138f

Untagged: centos:latest
Untagged: centos@sha256:f94c1d992c193b3dc09e297ffd54d8a4f1dc946c37cbeceb26d35ce1647f88d9
Deleted: sha256:0f3e07c0138fbe05abcb7a9cc7d63d9bd4c980c3f61fea5efa32e7c4217ef4da
Deleted: sha256:9e607bb861a7d58bece26dd2c02874beedd6a097c1b6eca5255d5eb0d2236983

当镜像有容器存在时

[root@docker-server3 ~]# docker ps -a

CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS               NAMES
acd538e93dec        redis:4.0           "docker-entrypoint.s…"   3 hours ago         Up 3 hours          6379/tcp            zen_raman
5e82ea0e65f0        centos:7            "/bin/bash"              3 hours ago         Up 3 hours                              romantic_lewin

[root@docker-server3 ~]# docker rmi 5e35e350aded

Error response from daemon: conflict: unable to delete 5e35e350aded (cannot be forced) - image is being used by running container 5e82ea0e65f0

强制删除

[root@docker-server3 ~]# docker rmi -f 5e35e350aded

Error response from daemon: conflict: unable to delete 5e35e350aded (cannot be forced) - image is being used by running container 5e82ea0e65f0

运行的容器,镜像是无法删除的,停止容器

[root@docker-server3 ~]# docker stop 5e82ea0e65f0

再次删除镜像

[root@docker-server3 ~]# docker rmi  -f 5e35e350aded

Untagged: centos:7
Untagged: centos@sha256:4a701376d03f6b39b8c2a8f4a8e499441b0d567f9ab9d58e4991de4472fb813c
Deleted: sha256:5e35e350aded98340bc8fcb0ba392d809c807bc3eb5c618d4a0674d98d88bccd

[root@docker-server3 ~]# docker image ls

REPOSITORY                                                    TAG                 IMAGE ID            CREATED             SIZE
redis                                                         4.0                 e263c3a3ce1f        2 days ago          89.2MB
httpd                                                         2.4                 c2aa7e16edd8        3 days ago          165MB
nginx                                                         latest              540a289bab6c        2 months ago        126MB
hub.darren.com/library/nginx                                  version1            540a289bab6c        2 months ago        126MB
goodsmileduck/redis-cli                                       latest              4b2315bf1ad2        4 months ago        48.9MB
registry.cn-hangzhou.aliyuncs.com/google_containers/coredns   1.1.3               b3b94275d97c        19 months ago       45.6MB

centos7的镜像已经被删除  

6 修改镜像名,打标签

[root@docker-server3 ~]# docker tag nginx:latest hub.darren.com/library/nginx:version1

[root@docker-server3 ~]# docker image ls

REPOSITORY                                                    TAG                 IMAGE ID            CREATED             SIZE
redis                                                         4.0                 e263c3a3ce1f        2 days ago          89.2MB
httpd                                                         2.4                 c2aa7e16edd8        3 days ago          165MB
hub.darren.com/library/nginx                                  version1            540a289bab6c        2 months ago        126MB
nginx                                                         latest              540a289bab6c        2 months ago        126MB
centos                                                        latest              0f3e07c0138f        3 months ago        220MB
goodsmileduck/redis-cli                                       latest              4b2315bf1ad2        4 months ago        48.9MB
registry.cn-hangzhou.aliyuncs.com/google_containers/coredns   1.1.3               b3b94275d97c        19 months ago       45.6MB

7 镜像的导入和导出

删除掉所有的镜像

拉去两个镜像

[root@docker-server3 ~]# docker pull busybox

[root@docker-server3 ~]# docker pull alpine

[root@docker-server3 ~]# docker image ls

REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
busybox             latest              6d5fcfe5ff17        4 days ago          1.22MB
alpine              latest              cc0abc535e36        6 days ago          5.59MB

[root@docker-server3 ~]# docker tag alpine:latest hub.darren.com/library/alpine:3.7

[root@docker-server3 ~]# docker image ls

REPOSITORY                      TAG                 IMAGE ID            CREATED             SIZE
busybox                         latest              6d5fcfe5ff17        4 days ago          1.22MB
alpine                          latest              cc0abc535e36        6 days ago          5.59MB
hub.darren.com/library/alpine   3.7                 cc0abc535e36        6 days ago          5.59MB

镜像不是一个文件

[root@docker-server3 ~]# cd /var/lib/docker/image/overlay2/

[root@docker-server3 overlay2]# ll

drwx------ 4 root root  58 Nov  9 03:50 distribution
drwx------ 4 root root  37 Nov  9 03:12 imagedb
drwx------ 5 root root  45 Nov  9 03:52 layerdb
-rw------- 1 root root 677 Dec 31 10:45 repositories.json

导出

[root@docker-server3 ~]# docker save -o alpine:3.7.tar hub.darren.com/library/alpine:3.7

[root@docker-server3 ~]# ll

-rw-------  1 root root 5866496 Dec 31 10:51 alpine:3.7.tar

[root@docker-server3 ~]# docker rmi -f cc0abc535e36

Untagged: alpine:latest
Untagged: alpine@sha256:2171658620155679240babee0a7714f6509fae66898db422ad803b951257db78
Untagged: hub.darren.com/library/alpine:3.7
Deleted: sha256:cc0abc535e36a7ede71978ba2bbd8159b8a5420b91f2fbc520cdf5f673640a34
Deleted: sha256:6b27de954cca6332272e7709b7d8ceccee1489d9452af73391df360a26123580
[root@docker-server3 ~]# docker image ls
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
busybox             latest              6d5fcfe5ff17        4 days ago          1.22MB

导入

[root@docker-server3 ~]# docker load --input alpine\:3.7.tar 

6b27de954cca: Loading layer [==================================================>]  5.857MB/5.857MB
Loaded image: hub.darren.com/library/alpine:3.7

[root@docker-server3 ~]# docker image ls

REPOSITORY                      TAG                 IMAGE ID            CREATED             SIZE
busybox                         latest              6d5fcfe5ff17        4 days ago          1.22MB
hub.darren.com/library/alpine   3.7                 cc0abc535e36        6 days ago          5.59MB

容器的镜像管理结束


 博主声明:本文的内容来源主要来自誉天教育晏威老师,由本人实验完成操作验证,需要的博友请联系誉天教育(http://www.yutianedu.com/),获得官方同意或者晏老师(https://www.cnblogs.com/breezey/)本人同意即可转载,谢谢

猜你喜欢

转载自www.cnblogs.com/zyxnhr/p/12129538.html