3.1、获取镜像

  • 获取镜像

    docker pull name[:TAG] #默认是从网络下载镜像,不指定tag会人下载latest标签下的镜像。

    1
    2
    docker search ubuntu
    docker pull ubuntu
  • 获取指定标签的镜像

    sudo docker pull ubuntu:14.04

    sudo docker pull docker.io/darksheer/ubuntu  #由darksheer用户上传的镜像 

  • 从其他注册服务器下载镜像

    sudo docker pull d1.dockerpool.com:5000/ubuntu

  • 利用镜像创建一个容器,并在其中运行bash

    [root@kakarott wuzb]# docker run -t -i centos /bin/bash

    [root@69d1a53fc9c1 /]#

3.2、查看镜像信息

  • 列出本机已有的镜像(标签、仓库、镜像ID、创建时间和大小)

    [root@kakarott wuzb]# docker images

    REPOSITORY         TAG                IMAGE ID           CREATED          SIZE

    docker.io/mysql    latest           5faba1a71ec4        2 weeks ago   406.9 MB

    docker.io/centos    latest               98d35105a391        2 weeks ago     192.5 MB

    docker.io/ubuntu   latest           0ef2e08ed3fa        5 weeks ago      130 MB

    TAG标签标注区别不同版本比如ubuntu仓库中有多个版本的镜像14.04、12.10等等

  • 给镜像添加标签

    docker tag docker.io/mysql:latest mysql:latest

  • 查询镜像的详细信息(通过imageID)

    docker inspect 5faba1a71ec4

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    {
            "Id": "sha256:5faba1a71ec40108975684d095f6bac32d6db87bc55576e09deb559fbafda213",
            "RepoTags": [
                "docker.io/mysql:latest",
                "mysql:latest"
            ],
            "RepoDigests": [
                "docker.io/mysql@sha256:b39e58483853ecd03160f9bfdc8d3ecb0be9071fdbbe5484d6a115677b62c84e"
            ],
            "Parent": "",
            "Comment": "",
            "Created": "2017-03-21T21:53:32.983892123Z",
            "Container": "082cc8c766b5590b15c073e268ab85673e63b543a8e4b433c5034308e4957a1b",
            "ContainerConfig": {
                "Hostname": "7e9ec6cde4d1",
                "Domainname": "",
                "User": "",
                "AttachStdin": false,
                "AttachStdout": false,
                "AttachStderr": false,
                "ExposedPorts": {
                    "3306/tcp": {}
                },
                "Tty": false,
                "OpenStdin": false,
                "StdinOnce": false,
                "Env": [
                    "PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin",
                    "GOSU_VERSION=1.7",
                    "MYSQL_MAJOR=5.7",
                    "MYSQL_VERSION=5.7.17-1debian8"
                ],
                "Cmd": [
                    "/bin/sh",
                    "-c",
                    "#(nop) ",
                    "CMD [\"mysqld\"]"
                ],
                "ArgsEscaped": true,
                "Image": "sha256:9ee2ffbf430a0bf54df6a0016076b677d6ee1b5c029d458390954b72aadf4391",
                "Volumes": {
                    "/var/lib/mysql": {}
                },
                "WorkingDir": "",
                "Entrypoint": [
                    "docker-entrypoint.sh"
                ],
                "OnBuild": [],
                "Labels": {}

    [root@kakarott wuzb]# docker inspect -f {{".Id"}} 5faba1a71ec4

    sha256:5faba1a71ec40108975684d095f6bac32d6db87bc55576e09deb559fbafda213

    注:查找固定参数

3.3、搜索镜像(唯一标识是ID,标签是为了区分版本)

  • 搜索镜像(查到镜像:说明、是否官方等等信息。默认是从docker hub官网上查询出来的)

    docker search python

    docker search python --automated=false

3.4、删除镜像

  • 通过标签来删除

    docker rmi mysql

    特别说明一个镜像只有唯一一个id。当一个镜像有多个标签,通过标签删除只会删除该标签。如果镜像只有

    一个标签,那么就会删除该镜像。

  • 通过镜像ID来删除镜像(ID唯一,如果该镜像有依赖关系是不能删除的)

    docker rmi 5faba1a71ec4

    docker rmi -f 5faba1a71ec4 (强制删除,但是删了镜像但是会留存依赖)

    正确的删除方式:先删除依赖,再删除镜像本身

    docker rm dcb

    docker rmi -f 5faba1a71ec4

3.5、创建镜像

创建镜像的方法三种:基于已有镜像来创建、基于本地模板导入、基于dockerfile创建。

  1. 基于已有镜像创建

    docker run -t -i docker.io/centos:latest 

    touche test

    docker commit -m "Add a new file test" -a "wuzb" 040e7af9b1f5 test     -m:更改内容   -a:修改者  后面的id是容器id   test是仓库名

  2. 基于本地模板创建

    cat ubuntu-16.04-x86_64.tar.gz |docker import  - ubuntu:16.04

    import - 【仓库名:标签名】

3.6、存出和载入镜像

  • 存出镜像

    docker save -o wuzb01.tar test:latest  

  • 载入镜像

    docker load --input wuzb.tar

    ​这里因为个载入过了,所以报了exist

3.7、上传镜像

  • step1——找到本地镜像的ID:docker images

    docker images

  • step2——登陆Hub:docker login --username=username --password=password --email=email

    docker login --username=wap306183118 --password=******

  • step3——tag:docker tag <imageID> <namespace>/<image name>:<version tag eg latest>

 docker tag wuzb:latest wap306183118/wuzb:latest

  • step4——push镜像:docker push <namespace>/<image name>

    docker push wap306183118/wuzb:latest

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    [root@kakarott wuzb]# docker images
    REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
    wap306183118/wuzb   latest              65ae3ff7de66        About an hour ago   130 MB
    wuzb                latest              65ae3ff7de66        About an hour ago   130 MB
    wzb/latest          latest              65ae3ff7de66        About an hour ago   130 MB
    docker.io/centos    latest              98d35105a391        3 weeks ago         192.5 MB
    docker.io/ubuntu    latest              0ef2e08ed3fa        5 weeks ago         130 MB
    [root@kakarott wuzb]# docker tag wuzb:latest wap306183118/wuzb:latest
    [root@kakarott wuzb]# docker images
    REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
    wuzb                latest              65ae3ff7de66        47 minutes ago      130 MB
    wzb/latest          latest              65ae3ff7de66        47 minutes ago      130 MB
    wap306183118/wuzb   latest              65ae3ff7de66        47 minutes ago      130 MB
    docker.io/centos    latest              98d35105a391        3 weeks ago         192.5 MB
    docker.io/ubuntu    latest              0ef2e08ed3fa        5 weeks ago         130 MB
    [root@kakarott wuzb]# docker login --username=wap306183118 --password=****** 
    Flag --email has been deprecated, will be removed in 1.13.
    Login Succeeded
    [root@kakarott wuzb]# docker push wap306183118/wuzb:latest
    The push refers to a repository [docker.io/wap306183118/wuzb]
    7abbbc964853: Pushed
    56827159aa8b: Pushed
    440e02c3dcde: Pushed
    29660d0e5bb2: Pushed
    85782553e37a: Pushed
    745f5be9952c: Pushing [===============>                                   ]    39 MB/130 MB
    745f5be9952c: Preparing

第三章 Docker的镜像的更多相关文章

  1. 第三章 Docker 入门

    第三章 docker 入门 3.1 确保docker已经就绪 首先查看docker程序是否存在,功能是否正常 [#3#cloudsoar@cloudsoar-virtual-machine ~]$su ...

  2. 《Docker 实战》第三章 Docker Hub 寻宝游戏

    # 秘密仓库和密码 docker run --rm -it --name password dockerinaction/ch3_ex2_huntanswer

  3. docker(三)docker镜像和镜像发布方法

    一.从公网docker hub 拉取image ~ # 搜索docker search centos~ » docker pull centos admin@steven- Using default ...

  4. 三、Docker镜像的相关操作

    原文:三.Docker镜像的相关操作 一.查看本地镜像: docker images 二.使用某个镜像来运行容器: docker run -t -i xxxx(镜像名):xx.xx(版本,不带即最新) ...

  5. Docker学习(三)——Docker镜像使用

    Docker镜像使用     当运行容器时,使用的镜像如果在本地中不存在,docker就会自动从docker镜像仓库中下载,默认是从Docker Hub公共镜像源下载. 1.镜像使用     (1)列 ...

  6. 三、docker镜像管理

    一.docker镜像管理 1.1.镜像搜索-search 从docker镜像仓库模糊搜索镜像 用法: docker search 镜像关键字 [root@zutuanxue ~]# docker se ...

  7. docker 拷贝镜像文件

    1.概述 我们制作好镜像后,有时需要将镜像复制到另一台服务器使用. 能达到以上目的有两种方式,一种是上传镜像到仓库中(本地或公共仓库),但是另一台服务器很肯能只是与当前服务器局域网想通而没有公网的,所 ...

  8. Docker 创建镜像、修改、上传镜像

    Docker 创建镜像.修改.上传镜像 –创建镜像有很多方法,用户可以从 Docker Hub 获取已有镜像并更新,也可以利用本地文件系统创建一个. 一.创建镜像 创建镜像有很多方法,用户可以从 Do ...

  9. 庐山真面目之九微服务架构 NetCore 基于 Docker 基础镜像和挂载文件部署

    庐山真面目之九微服务架构 NetCore 基于 Docker 基础镜像和挂载文件部署 一.简介      我们在上一篇文章<庐山真面目之八微服务架构 NetCore 基于 Dockerfile ...

随机推荐

  1. 关于JAVA中抽象类和接口的区别辨析

    今天主要整理一下新学习的有关于Java中抽象类和接口的相关知识和个人理解. 1 抽象类 用来描述事物的一般状态和行为,然后在其子类中去实现这些状态和行为.也就是说,抽象类中的方法,需要在子类中进行重写 ...

  2. 如何在appconfig中配置服务的ip

    开发了一个WindowsService消息服务器,刚开始一直都是在代码中把IP地址写死,所以每次只要是更换了新的IP地址后,都需要重新编译项目.所以考虑把ip配置到config文件中, 这样做的好处是 ...

  3. nodejs的简单爬虫

    闲聊       好久没写博客了,前几天小颖在朋友的博客里看到了用nodejs的简单爬虫.所以小颖就自己试着做了个爬博客园数据的demo.嘻嘻......      小颖最近养了条泰日天,自从养了我家 ...

  4. yii2.0自带email

    大部分框架都有自带的email邮件发送类,yii的邮件发送也很简单,代码如下: 修改配置文件,普通版在(config/web.php).高级版默认配置在/common/config/main-loca ...

  5. iOS SnapKit自动布局使用详解

    对于自动布局: 我们在 StoryBoard 中可以使用约束实现,简单明了,但如果用纯代码来设置约束就很麻烦了 OC里面,我们常用的有Masonry,SDAutoLayout Swift里,我们有Sn ...

  6. ASP.NET使用ajax实现分页局部刷新页面

    listview列表实现分页是非常容易的.ListView分页是非常简单的,加上一个DataPager控件,把ListView的ID赋予就可以了.最开始我就是这么写的.(网上有人说这样是伪分页?) & ...

  7. 实验楼-3-Linux用户及用户组

    获得自己用户名 $ who am i $ whoami pts/0 : 伪终端/序号 root操作:sudo Firstly,知道当前登录用户的密码:Secondly,当前用户在sudo用户组 添加新 ...

  8. js的几种简单排序算法及其效率实测

    function swap(arr,index1,index2){ var t = arr[index1]; arr[index1] = arr[index2]; arr[index2] = t; } ...

  9. 《Django By Example》第十二章 中文 翻译 (个人学习,渣翻)

    书籍出处:https://www.packtpub.com/web-development/django-example 原作者:Antonio Melé (译者注:第十二章,全书最后一章,终于到这章 ...

  10. XML和JSON两种数据交换格式的比较

    在web开发领域,主要的数据交换格式有XML和JSON,对于在 Ajax开发中,是选择XML还是JSON,一直存在着争议,个人还是比较倾向于JSON的.一般都输出Json不输出xml,原因就是因为 x ...