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. mysql的count和sum使用条件表达式

    count函数条件不为null的时候显示结果.即使为false也也会显示结果. 可以是使用if条件或者case when语句.如果条件不为null即需要的结果. 使用count()函数实现条件统计的基 ...

  2. python并发——信号量

    信号量通常用于保护数量有限的资源,例如数据库服务器.在资源数量固定的任何情况下,都应该使用有界信号量.在生成任何工作线程前,应该在主线程中初始化信号量. 工作线程生成后,当需要连接服务器时,这些线程将 ...

  3. Mac下mysql服务端密码重置及环境配置

    一 停止mysql服务 关闭MySQL服务的操作: 苹果->系统偏好设置->最下边点MySQL 在弹出页面中 关闭mysql服务(点击stop mysql server) 二 进入终端,命 ...

  4. rally使用tempest进行测试

    安装 通过Rally进行Tempest测试,执行如下命令创建tempest实例,Rally会自动同步tempest代码至本地: rally verify create-verifier --name ...

  5. 微信小程序开发-框架

    小程序开发框架的目标是通过尽可能简单.高效的方式让开发者可以在微信中开发具有原生 APP 体验的服务.框架提供了自己的视图层描述语言 WXML 和 WXSS,以及基于 JavaScript 的逻辑层框 ...

  6. Markov logic network

    A Markov logic network (or MLN) is a probabilistic logic which applies the ideas of a Markov network ...

  7. .Netcore 2.0 Ocelot Api网关教程(1)- 入门

    Ocelot(Github)Ocelot官方文档(英文)本文不会介绍Api网关是什么以及Ocelot能干什么需要对Api网关及Ocelot有一定的理论了解 开始使用Ocelot搭建一个入门级Api网关 ...

  8. kali破解wifi密码

    开始 1.选择合适的网卡,有些网卡kali识别不了,我用的网卡信息 2.网卡开启监听模式 3.查看监听模式是否开启成功(网卡名称变成wlan0mon说明已经开启成功) 4.输入“airodump-ng ...

  9. ubuntu14+ns2

    https://www.linuxidc.com/Linux/2017-03/141504.htm 环境变量改为: export PATH=$PATH:/home/zgh/Desktop/ns-all ...

  10. (转)window.XMLHttpRequest详解(AJAX工作原理)

    转自:http://l.xbest.blog.163.com/blog/static/8640444120100225516963/?fromdm&fromSearch&isFromS ...