docker的镜像操作

Union文件系统是Docker镜像的基础。

UnionFS(联合文件系统):Union文件系统是一种分层,轻量级并且高性能的文件系统。它支持对文件系统的修改作为一次提交来一层层的叠加,同时可以将不同的目录挂载到同一个虚拟文件系统下。

最上层是可写层。

1:下载镜像:格式 docker [image] pull [仓库地址]/NAME:TAG

ubuntu@ubuntu:~$ docker pull registry.hub.docker.com/ubuntu:18.04      #下载ubuntu镜像,标签为18.04
ubuntu@ubuntu:~$ docker pull centos:7.2.1511 #下载一个centos镜像

2:查看本地仓库的镜像

ubuntu@ubuntu:~$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
ubuntu 18.04 775349758637 12 days ago 64.2MB
ubuntu latest 775349758637 12 days ago 64.2MB
centos 7.2.1511 9aec5c5fe4ba 8 months ago 195MB
hello-world latest fce289e99eb9 10 months ago 1.84kB
#latest标签的版本是不稳定的,会随着版本更新而变化,建议使用稳定带标签的版本
#查看子命令:man docker-images

3:使用镜像创建一个容器

ubuntu@ubuntu:~$ docker run  -ti 775349758637  /bin/bash
root@e6cce6710d88:/# ubuntu@ubuntu:~$ docker run -it ubuntu:18.04 bash
root@fc41542c62b5:/#

4;使用tag命令为本地镜像添加别名

ubuntu@ubuntu:~$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
ubuntu 18.04 775349758637 13 days ago 64.2MB
ubuntu latest 775349758637 13 days ago 64.2MB
centos 7.2.1511 9aec5c5fe4ba 8 months ago 195MB
hello-world latest fce289e99eb9 10 months ago 1.84kB
ubuntu@ubuntu:~$ docker tag ubuntu:18.04 myubuntu:18.04 # 添加别名
ubuntu@ubuntu:~$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
myubuntu 18.04 775349758637 13 days ago 64.2MB
ubuntu 18.04 775349758637 13 days ago 64.2MB
ubuntu latest 775349758637 13 days ago 64.2MB
centos 7.2.1511 9aec5c5fe4ba 8 months ago 195MB
hello-world latest fce289e99eb9 10 months ago 1.84kB #别名IMAGE ID是一样的,指向同一个镜像

5:使用inspect命令查看详细信息docker [image] inspect 镜像

ubuntu@ubuntu:~$ docker inspect ubuntu:18.04
[
{
"Id": "sha256:775349758637aff77bf85e2ff0597e86e3e859183ef0baba8b3e8fc8d3cba51c",
"RepoTags": [
"myubuntu:18.04",
"ubuntu:18.04",
"ubuntu:latest"
],
"RepoDigests": [
"ubuntu@sha256:6e9f67fa63b0323e9a1e587fd71c561ba48a034504fb804fd26fd8800039835d"
],
"Parent": "",
"Comment": "",
"Created": "2019-10-31T22:20:37.714423666Z",
"Container": "4df7a03525342ee760076ade1c80bbdd041f236654f624ca581ada54310a1574",
"ContainerConfig": {
"Hostname": "4df7a0352534",
"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"
],
...
-f:查看某一个特定字段的内容
ubuntu@ubuntu:~$ docker inspect -f {{".Id"}} ubuntu:18.04
sha256:775349758637aff77bf85e2ff0597e86e3e859183ef0baba8b3e8fc8d3cba51c
ubuntu@ubuntu:~$ docker inspect -f='{{ .NetworkSettings.Networks.bridge.IPAddress }}' 92c
172.17.0.2
ubuntu@ubuntu:~$ docker inspect --format {{".NetworkSettings.Networks.bridge.IPAddress"}} 92c #不要有空格
172.17.0.2
#注意格式-f{{.xxxx}}

6:使用history查看镜像历史

ubuntu@ubuntu:~$ docker history --no-trunc  ubuntu:18.04

7:搜寻镜像

查看帮助文档 man docker-search
ubuntu@ubuntu:~$ docker search --filter=stars=3 nginx

8.删除镜像docker rmi IMAGe[IMAGE...]

1:删除自定义标签myubuntu镜像
ubuntu@ubuntu:~$ docker rmi myubuntu:18.04
Untagged: myubuntu:18.04
#同一镜像拥有多个标签,只删除指定的标签 2:查看本机所有存在的容器
ubuntu@ubuntu:~$ docker ps ubuntu@ubuntu:~$ docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
fc41542c62b5 775349758637 "bash" 3 hours ago Up 3 hours sleepy_roentgen CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
fc41542c62b5 775349758637 "bash" 3 hours ago Up 3 hours sleepy_roentgen 3:无法删除正在运行的镜像
ubuntu@ubuntu:~$ docker rmi ubuntu:latest
Error response from daemon: conflict: unable to remove repository reference "ubuntu:latest" (must force) - container fc41542c62b5 is using its referenced image 775349758637 4:-f参数强制删除正在运行的容器(不推荐使用)
ubuntu@ubuntu:~$ docker rmi -f ubuntu:latest
Untagged: ubuntu:latest
Untagged: ubuntu@sha256:6e9f67fa63b0323e9a1e587fd71c561ba48a034504fb804fd26fd8800039835d

9:清理docker运行产生的临时镜像文件

ubuntu@ubuntu:~$ docker image prune -f    #强制删除遗留的临时镜像文件层
Total reclaimed space: 0B
# -a:删除所有无用的镜像

10:创建镜像

方法1:基于已有容器创建

格式:docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]

-a :作者信息

-c:提交时执行的Dockerfile文件,包括CMD|ENV|LABEL等等

-m:提交的信息,评论解释

-P:提交时候暂停容器运行

案例:

1:启动一个镜像,并在里面创建一个文件
ubuntu@ubuntu:~$ docker run -it ubuntu:18.04 /bin/bash
root@f20664a41969:/# pwd
/
root@f20664a41969:/# touch test.txt
root@f20664a41969:/# exit
exit #记住容器ID:f20664a41969 2:提交一个新的镜像
ubuntu@ubuntu:~$ docker commit -m "Add a new file test.txt" -a "author_007" f20664a41969 test:0.1
sha256:55f6618d9cdf8c56a1d80b0f0926341da231613a4e7646f47b0b7ab47c5eb21f   #新的镜像id 3:查看当前镜像
ubuntu@ubuntu:~$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
test 0.1 55f6618d9cdf About a minute ago 64.2MB
ubuntu 18.04 775349758637 13 days ago 64.2MB
centos 7.2.1511 9aec5c5fe4ba 8 months ago 195MB
hello-world latest fce289e99eb9 10 months ago 1.84kB 4:运行镜像test:0.1查看是否有test文件
ubuntu@ubuntu:~$ docker run -it test:0.1 /bin/bash
root@acfd9348cffe:/# ls
bin dev home lib64 mnt proc run srv test.txt usr
boot etc lib media opt root sbin sys tmp var

方法2:基于本地模板导入

方法3:基于Dockerfile创建

11:存出和载入镜像

1:导出镜像到本地文件
ubuntu@ubuntu:~$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
test 0.1 55f6618d9cdf 10 minutes ago 64.2MB
ubuntu 18.04 775349758637 13 days ago 64.2MB
centos 7.2.1511 9aec5c5fe4ba 8 months ago 195MB
hello-world latest fce289e99eb9 10 months ago 1.84kB
ubuntu@ubuntu:~$ docker save -o ubuntu_18.04.tar ubuntu:18.04  #导出镜像
ubuntu@ubuntu:~$ ls
apt-transport-https linux-image-extra-5.3.0-19-generic snap
ca-certificates Music Templates
curl new_ubuntu.txt ubuntu_18.04.tar 2:将导出的tar文件再导入本地镜像库 ubuntu@ubuntu:~$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
centos 7.2.1511 9aec5c5fe4ba 8 months ago 195MB ubuntu@ubuntu:~$ docker load -i ubuntu_18.04.tar   #导入镜像
Loaded image: ubuntu:18.04
ubuntu@ubuntu:~$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
ubuntu 18.04 775349758637 13 days ago 64.2MB
centos 7.2.1511 9aec5c5fe4ba 8 months ago 195MB

03docker镜像的更多相关文章

  1. bayaim——听课笔记_01.Docker基础应用 10课.txt

    ===========2019年8月5日18:39:06====================10.20.100.21rootbayaim ==========01-Docker介绍======== ...

  2. 03-docker入门-创建 docker 镜像

    方法1:从运行的容器创建方法2:编写 DockFile 文件创建 方法1: 打包镜像 docker commit -m "Test a change" 610 ubuntu:tes ...

  3. 03--Docker 容器和镜像常用命令

    一.帮助命令 docker version docker info docker --help =====================镜像命令=========================== ...

  4. NuGet镜像上线试运行

    为解决国内访问NuGet服务器速度不稳定的问题,我们用阿里云服务器搭建了一个NuGet镜像,目前已上线试运行. 使用NuGet镜像源的方法如下: 1)NuGet镜像源地址:https://nuget. ...

  5. SQL Server镜像自动生成脚本

    SQL Server镜像自动生成脚本 镜像的搭建非常繁琐,花了一点时间写了这个脚本,方便大家搭建镜像 执行完这个镜像脚本之后,最好在每台机器都绑定一下hosts文件,不然的话,镜像可能会不work 1 ...

  6. Android SDK 在线更新镜像服务器资源

    本文转自:http://blog.kuoruan.com/24.html.感谢原作者. 什么是Android SDK SDK:(software development kit)软件开发工具包.被软件 ...

  7. Jexus Web Server 完全傻瓜化图文配置教程(基于Ubuntu 12.04.3 64位)[内含Hyper-v 2012虚拟机镜像下载地址]

    1. 前言 近日有感许多新朋友想尝试使用Jexus,不过绝大多数都困惑徘徊在Linux如何安装啊,如何编译Mono啊,如何配置Jexus啊...等等基础问题,于是昨日向宇内流云兄提议,不如搞几个配置好 ...

  8. Windows Server 2012 磁盘管理之 简单卷、跨区卷、带区卷、镜像卷和RAID-5卷

    今天给客户配置故障转移群集,在Windows Server 2012 R2的系统上,通过iSCSI连接上DELL的SAN存储后,在磁盘管理里面发现可以新建 简单卷.跨区卷.带区卷.镜像卷.RAID-5 ...

  9. 如何用Dockerfile创建镜像

    本文原创,原文地址为:http://www.cnblogs.com/fengzheng/p/5181222.html 创建镜像的目的 首先说DockerHub或其它一些镜像仓库已经提供了够多的镜像,有 ...

随机推荐

  1. CISCO实验记录一:路由器基本配置

    一.路由器基本配置要求 1.设置路由器名为:hehe 2.设置特权模式下password为ccna,secret为ccnp,vty线路密码为ccie 3.所有明文密码都加密 二.路由器基本配置命令 1 ...

  2. 如何选CDN:互联网大直播时代的CDN选择指南

    转: 如何选CDN:互联网大直播时代的CDN选择指南 from:  http://www.chnvideo.com/blog-classic-cdn.html SRS 编码器   如何选CDN:互联网 ...

  3. (转载)IOCP 浅析

    转自:http://www.ibm.com/developerworks/cn/java/j-lo-iocp/#author   郭 仁祥, 软件工程师, IBM 简介: 传统的 Server/Cli ...

  4. Elasticsearch的安装入门

    大纲: 一.简介 二.Logstash 三.Redis 四.Elasticsearch 五.Kinaba 一.简介 1.核心组成 ELK由Elasticsearch.Logstash和Kibana三部 ...

  5. nginx配置, 启动命令, 反向代理配置

    2014年1月3日 13:52:07 喜欢这样的风格,干货 http://huoding.com/2013/10/23/290 -----------------下边是我自己的经验(windows)- ...

  6. vue 组件属性props,特性驼峰命名,连接线使用

    网址:https://www.cnblogs.com/alasq/p/6363160.html 总结如下:vue的组件的props属性支持驼峰命名,不支持连接线命名,使用是用连接线进行赋值或者数据绑定 ...

  7. Scala面向对象02

  8. 阿里云Centos7挂载数据盘

    查看磁盘情况 fdisk -l fdisk /dev/vdb 根据提示,分别输入 n. p. . enter.enter.wq fdisk -l mkfs.ext3 /dev/vdb1 挂载磁盘,写入 ...

  9. ElasticSearch——分词

    前言: 最近在使用elasticSearch中发现有些数据查不出来,于是研究了一下,发现是分词导致的,现梳理并总结一下. ElasticSearch 5.0以后,string类型有重大变更,移除了st ...

  10. React Native初始化项目0.47.1报错

    首先看一下安卓和iOS报错: iOS终端运行报错: Xcode运行报错: 解决办法一: 将版本降到0.44.3,修改package,具体请看我的另一篇博客: http://www.cnblogs.co ...