实验环境

CentOS 7.5

安装并启动docker

  1. yum install -y docker
  2. systemctl start docker

镜像

安装镜像

  1. docker pull [OPTIONS] NAME[:TAG|@DIGEST]

注:对于Docker镜像来说,如果不显式地指定TAG,则默认会选择 latest标签,即下载仓库中最新版本的镜像。

  • 从Docker Hub的CentOS仓库下载一个最新的CentOS操作系统的镜像。
  1. [root@kvm ~]# docker pull centos
  2. Using default tag: latest
  3. Trying to pull repository docker.io/library/centos ...
  4. latest: Pulling from docker.io/library/centos
  5. a02a4930cb5d: Pull complete
  6. Digest: sha256:184e5f35598e333bfa7de10d8fb1cebb5ee4df5bc0f970bf2b1e7c7345136426
  7. Status: Downloaded newer image for docker.io/centos:latest docker pull centos
  8. Using default tag: latest
  9. Trying to pull repository docker.io/library/centos ...
  10. latest: Pulling from docker.io/library/centos
  11. a02a4930cb5d: Pull complete
  12. Digest: sha256:184e5f35598e333bfa7de10d8fb1cebb5ee4df5bc0f970bf2b1e7c7345136426
  13. Status: Downloaded newer image for docker.io/centos:latest docker pull centos
  14. Using default tag: latest
  15. Trying to pull repository docker.io/library/centos ...
  16. latest: Pulling from docker.io/library/centos
  17. a02a4930cb5d: Pull complete
  18. Digest: sha256:184e5f35598e333bfa7de10d8fb1cebb5ee4df5bc0f970bf2b1e7c7345136426
  19. Status: Downloaded newer image for docker.io/centos:latest

注:该命令实际上下载的就是centos:latest镜像,目前最新的7.6.1810版本的镜像。

  • 从Docker Hub的CentOS仓库下载一个指定版本的CentOS操作系统的镜像。
  1. [root@kvm ~]# docker pull centos:7.3.1611
  2. Trying to pull repository docker.io/library/centos ...
  3. 7.3.1611: Pulling from docker.io/library/centos
  4. b8e0383d5f94: Pull complete
  5. Digest: sha256:6fe8d484f2897e2ea75f496bfb6792b539baf3e56880fce3b9b6505d76e266dd
  6. Status: Downloaded newer image for docker.io/centos:7.3.1611

查看镜像信息

列出本地主机上已有的镜像

  1. [root@kvm ~]# docker images
  2. REPOSITORY TAG IMAGE ID CREATED SIZE
  3. docker.io/centos latest 1e1148e4cc2c 7 weeks ago 202 MB
  4. docker.io/centos 7.3.1611 1e20acd39495 3 months ago 192 MB
  • 各字段释义

    • REPOSITORY:来自于哪个仓库,比如centos仓库;
    • TAG:镜像的标签信息,比如7.3.1611;
    • IMAGE ID:镜像的ID号(唯一);
    • CREATED:创建时间;
    • SIZE:镜像大小。

创建镜像

创建镜像的方法主要有三种:基于已有镜像的容器创建、基于本地模板导入、基于Dockerfile创建;这里着重介绍前两种。

基于已有镜像的容器创建

  • 该方法实现创建的命令行格式
  1. docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]
  2. [root@kvm ~]# docker commit --help
  3. Usage: docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]
  4. Create a new image from a container's changes
  5. Options:
  6. -a, --author string 作者信息
  7. -c, --change list 提交的时候执行Dockerfile指令 (default [])
  8. --help 帮助信息
  9. -m, --message string 提交信息
  10. -p, --pause 提交期间暂停容器运行
  • 实际操作创建一个新镜像

    • 启动一个镜像,然后做修改后退出
  1. [root@kvm ~]# docker run -t -i docker.io/centos:7.3.1611 /bin/bash
  2. [root@90d3b762f848 /]# touch test.txt
  3. [root@90d3b762f848 /]# exit

注:记住容器 ID为90d3b762f848。

* 此时的该容器与原centos:7.3.1611镜像相比,已经发生改变,可执行docker commit命令来提交一个新的镜像;提交时可以使用ID或名称来指定容器。

  1. [root@kvm ~]# docker commit -m "add a file named test.txt" -a "docker new" 90d3b762f848 www.wholj.com:7.3
  2. sha256:3a51b6661c9f9c31ec8239405535cc57f782972f6eedf8452e2d8f4bce0bc2d6
  3. [root@kvm ~]# docker images
  4. REPOSITORY TAG IMAGE ID CREATED SIZE
  5. www.wholj.com 7.3 3a51b6661c9f 7 seconds ago 192 MB
  6. docker.io/centos latest 1e1148e4cc2c 7 weeks ago 202 MB
  7. docker.io/centos 7.3.1611 1e20acd39495 3 months ago 192 MB

镜像ID为3a51b6661c9f的镜像即为刚新增的。

基于本地模板导入

  • 该方法实现创建的命令行格式
  1. [root@kvm /home/tools/ISO]# docker import --help
  2. Usage: docker import [OPTIONS] file|URL|- [REPOSITORY[:TAG]]
  3. Import the contents from a tarball to create a filesystem image
  4. Options:
  5. -c, --change list Apply Dockerfile instruction to the created image (default [])
  6. --help 帮助信息
  7. -m, --message string 为此导入镜像设置提交信息
  • 实际操作创建一个新镜像
  1. [root@kvm /home/tools/ISO]# cat centos-7-x86_64-minimal.tar.gz | docker import - www.wholj.com:7.5
  2. sha256:4950a54ede5a5c0da704c6f74e6bcc43d440e83260b0752a926325035435a7dc
  3. [root@kvm /home/tools/ISO]# docker images
  4. REPOSITORY TAG IMAGE ID CREATED SIZE
  5. www.wholj.com 7.5 4950a54ede5a 10 seconds ago 435 MB
  6. www.wholj.com 7.3 3a51b6661c9f 2 days ago 192 MB
  7. docker.io/centos latest 1e1148e4cc2c 7 weeks ago 202 MB
  8. docker.io/centos 7.3.1611 1e20acd39495 3 months ago 192 MB

镜像ID为4950a54ede5a的镜像即为刚新增的。

导出(save)和载入(load)镜像

导出镜像

将本地已有的镜像文件导出后可分享给其他人使用。

  • 导出镜像的命令行格式用法
  1. docker save [OPTIONS] IMAGE [IMAGE...]
  2. [root@kvm ~]# docker save --help
  3. Usage: docker save [OPTIONS] IMAGE [IMAGE...]
  4. Save one or more images to a tar archive (streamed to STDOUT by default)
  5. Options:
  6. --help 帮助信息
  7. -o, --output string 从标准输出导出镜像到指定的文件中
  • 导出本地的docker.io/centos:latest镜像为文件centos_7.6.tar
  1. [root@kvm ~]# docker images
  2. REPOSITORY TAG IMAGE ID CREATED SIZE
  3. www.wholj.com 7.3 3a51b6661c9f About an hour ago 192 MB
  4. docker.io/centos latest 1e1148e4cc2c 7 weeks ago 202 MB
  5. docker.io/centos 7.3.1611 1e20acd39495 3 months ago 192 MB
  6. [root@kvm ~]# ll
  7. total 8
  8. -rw-------. 1 root root 2090 Nov 30 11:33 anaconda-ks.cfg
  9. -rw-------. 1 root root 1955 Nov 30 11:33 original-ks.cfg
  10. [root@kvm ~]# docker save -o centos_7.6.tar docker.io/centos:latest
  11. [root@kvm ~]# ll
  12. total 205272
  13. -rw-------. 1 root root 2090 Nov 30 11:33 anaconda-ks.cfg
  14. -rw------- 1 root root 210186752 Jan 25 17:17 centos_7.6.tar
  15. -rw-------. 1 root root 1955 Nov 30 11:33 original-ks.cfg
  16. [root@kvm ~]#

载入镜像

将别人分享给自己的镜像导入到本地镜像库。

  • 载入镜像的命令行格式用法
  1. docker load [OPTIONS]
  2. [root@kvm ~]# docker load --help
  3. Usage: docker load [OPTIONS]
  4. Load an image from a tar archive or STDIN
  5. Options:
  6. --help 帮助信息
  7. -i, --input string 从指定tar文件读入镜像内容
  8. -q, --quiet Suppress the load output
  • 从指定文件导入镜像文件到本地镜像库
  1. [root@kvm ~]# docker load -i ./centos_7.6.tar
  2. Loaded image: docker.io/centos:latest

或者:

  1. [root@kvm ~]# docker load < ./centos_7.6.tar
  2. Loaded image: docker.io/centos:latest

注:上述命令将导入镜像及其相关的元数据信息(包括标签等)。导入成功后,可以使用docker images命令进行查看,与原镜像一致。

docker镜像 - 下载、创建镜像和导入导出镜像的更多相关文章

  1. docker 保存 加载(导入 导出镜像

    tensorflow 的docker镜像很大,pull一次由于墙经常失败.其实docker 可以将镜像导出再导入. 保存加载(tensorflow)镜像 1) 查看镜像 docker images 如 ...

  2. docker 导入导出镜像

    docker容器导入导出有两种方法: 一种是使用save和load命令 使用例子如下: docker save ubuntu:load>/root/ubuntu.tar docker load& ...

  3. docker导入导出镜像

    docker容器导入导出有两种方法: 一种是使用save和load命令 使用例子如下: docker save ubuntu:load>/root/ubuntu.tar docker load& ...

  4. docker离线导入导出镜像

    docker save -o mysqlies.tar 5ada6380f248(镜像id)    # 镜像id是要导出的 有镜像的机器  在有镜像的机器上执行docker load --input ...

  5. Oracle数据库的创建、数据导入导出

    如何结合Sql脚本和PL/SQL Developer工具来实现创建表空间.创建数据库.备份数据库.还原数据库等操作,然后实现Oracle对象创建.导入数据等操作,方便我们快速了解.创建所需要的部署Sq ...

  6. postgresql绿色版安装及Navicat创建数据库,导入导出sql

    转载:https://www.cnblogs.com/winkey4986/p/5360551.html 1.设置安装路径为:D:\soft\pgsql,数据存储路径为:D:\soft\pgsql\d ...

  7. docker进入mysql数据库并进行导入 导出

    一:导入 1.首先查看docker运行的容器: docker ps 2.将宿主机文件拷贝到docker容器中: docker cp 2020415.sql af491d5466ea:/opt/2020 ...

  8. phpMyAdmin教程 之 创建新用户/导入/导出数据库

    盗用了被人的教程. 需要看就点击进去吧.复制过来实在是过意不去 http://www.wpdaxue.com/phpmyadmin-import-export-database.html

  9. Docker的数据管理(下)——docke镜像的创建

    Docker的数据管理(下)--docke镜像的创建 1.基于现有镜像创建 2.基于本地模板创建 3.基于 dockerfile 创建 4.Dockerfile 镜像操作常用命令 5.dockerfi ...

随机推荐

  1. PCI Express

    1.1课题研究背景 在目前高速发展的计算机平台上,应用软件的开发越来越依赖于硬件平台,尤其是随着大数据.云计算的提出,人们对计算机在各个领域的性能有更高的需求.日常生活中的视频和图像信息包含大量的数据 ...

  2. A*模板(求K短路)(POJ2449)

    A*是bfs的优化,IDA*是dfs的优化 A*算法: 为启发式算法中很重要的一种,被广泛应用在最优路径求解和一些策略设计的问题中.而A*算法最为核心的部分,就在于它的一个估值函数的设计上: f(n) ...

  3. centos因为安装花生壳而无法登录系统的问题

    服务器安装 phddns 花生壳 启动失败,一直卡在启动进度条页面. 解决办法 1.按F5查看卡在什么位置, 2.查看解决方法:程序卡住的情况下,直接备份资料后,卸载程序重启就可以了. 3.进入到si ...

  4. nginx配置从远程获取静态资源

    前置条件:现有两台内网互通机器192.168.0.100.192.168.0.101,其中192.168.0.100可以通过外网网络.业务需求:需要通过外网访问处于192.168.0.101机器上的静 ...

  5. nginx proxy_set_header Host $host 和 proxy_set_header Host $http_host 的作用对比

    转载自https://www.jianshu.com/p/7a8a7eb3707a 1.浏览器直接访问服务,获取到的 Host 包含浏览器请求的 IP 和端口 测试服务器,centos 7 sudo ...

  6. vim编辑器-删除命令

    dd:删除游标所在的一整行(常用)   ndd:n为数字.删除光标所在的向下n行,例如20dd则是删除光标所在的向下20行   d1G:删除光标所在到第一行的所有数据   dG:删除光标所在到最后一行 ...

  7. 判断是否网络连通 .net Ping

    using System; using System.Collections.Generic; using System.Diagnostics; using System.Linq; using S ...

  8. C语言回文链表

    要求:请判断一个链表是否为回文链表. 示例 1: 输入: 1->2 输出: false 示例 2: 输入: 1->2->2->1 输出: true思路:利用快慢双指针+反转半链 ...

  9. java 学习(day2) 时钟类

    看过python的面向对象,所以入手java总的来说还是比较快的. 看视频学习之后写了一个简单的时钟 一个时钟有两部分组成小时和分钟.再大一些还有月,日. 分析一下就是,上述这些属性到达一个值之后,就 ...

  10. docker部署java应用程序

    https://docs.docker.com/get-started/ 安装docker   1.安装docker  apt install docker 2.配置docker加速器 安装完成后在 ...