03docker镜像
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镜像的更多相关文章
- bayaim——听课笔记_01.Docker基础应用 10课.txt
===========2019年8月5日18:39:06====================10.20.100.21rootbayaim ==========01-Docker介绍======== ...
- 03-docker入门-创建 docker 镜像
方法1:从运行的容器创建方法2:编写 DockFile 文件创建 方法1: 打包镜像 docker commit -m "Test a change" 610 ubuntu:tes ...
- 03--Docker 容器和镜像常用命令
一.帮助命令 docker version docker info docker --help =====================镜像命令=========================== ...
- NuGet镜像上线试运行
为解决国内访问NuGet服务器速度不稳定的问题,我们用阿里云服务器搭建了一个NuGet镜像,目前已上线试运行. 使用NuGet镜像源的方法如下: 1)NuGet镜像源地址:https://nuget. ...
- SQL Server镜像自动生成脚本
SQL Server镜像自动生成脚本 镜像的搭建非常繁琐,花了一点时间写了这个脚本,方便大家搭建镜像 执行完这个镜像脚本之后,最好在每台机器都绑定一下hosts文件,不然的话,镜像可能会不work 1 ...
- Android SDK 在线更新镜像服务器资源
本文转自:http://blog.kuoruan.com/24.html.感谢原作者. 什么是Android SDK SDK:(software development kit)软件开发工具包.被软件 ...
- Jexus Web Server 完全傻瓜化图文配置教程(基于Ubuntu 12.04.3 64位)[内含Hyper-v 2012虚拟机镜像下载地址]
1. 前言 近日有感许多新朋友想尝试使用Jexus,不过绝大多数都困惑徘徊在Linux如何安装啊,如何编译Mono啊,如何配置Jexus啊...等等基础问题,于是昨日向宇内流云兄提议,不如搞几个配置好 ...
- Windows Server 2012 磁盘管理之 简单卷、跨区卷、带区卷、镜像卷和RAID-5卷
今天给客户配置故障转移群集,在Windows Server 2012 R2的系统上,通过iSCSI连接上DELL的SAN存储后,在磁盘管理里面发现可以新建 简单卷.跨区卷.带区卷.镜像卷.RAID-5 ...
- 如何用Dockerfile创建镜像
本文原创,原文地址为:http://www.cnblogs.com/fengzheng/p/5181222.html 创建镜像的目的 首先说DockerHub或其它一些镜像仓库已经提供了够多的镜像,有 ...
随机推荐
- ARP 之 发送请求arp_solicit
概述 arp_solicit用来发送ARP请求,首先会根据ARP_ANNOUNCE参数来选取源地址,然后判断是否达到内核发送次数上限,未达到则调用内核arp_send_dst函数发送,如果达到上限,则 ...
- Ubuntu18.04 server安装步骤
Ubuntu18.04 server安装步骤 1. select a language default 2. select your location default 3. configure th ...
- 在windows系统搭建Flutter开发环境
开发环境搭建(Windows) 系统要求 设置FLutter镜像(非必须) 获取Flutter SDK Android开发环境设置 安装Flutter插件 系统要求 在Windows上要安装并运行Fl ...
- Download google drive public shared file in terminal
http://unix.stackexchange.com/questions/136371/how-to-download-a-folder-from-google-drive-using-term ...
- Flume-Exec Source 监控单个本地文件
实时监控,并上传到 HDFS 中. 一.Flume 要想将数据输出到 HDFS,须持有 Hadoop 相关 jar 包 若 Hadoop 环境和 Flume 在同一节点,那么只要配置 Hadoop 环 ...
- 前端知识点回顾之重点篇——ES6的Promise对象
Promise Promise 是异步编程的一种解决方案,比传统的解决方案--回调函数和事件--更合理和更强大. 所谓Promise,简单说就是一个容器,里面保存着某个未来才会结束的事件(通常是一个异 ...
- ansible简单入门
1,结构框架 Ansible 使用的是无代理体系结构,这种体系结构可以通过防止节点轮询控制机器来减少网络开销.Ansible 提供的结果框架如下所示: Ansible :运行在中央计算机上: Conn ...
- 【转】MAC 配置ssh免密登录
配了挺多次免密登录,老是忘了,备份一下 转载自知乎,如侵删.https://zhuanlan.zhihu.com/p/32279976 -------------------------------- ...
- 转载:深入浅出 Java 8 Lambda 表达式
原文地址:http://viralpatel.net/blogs/Lambda-expressions-java-tutorial/ OneAPM for Java 能够深入到所有 Java 应用内部 ...
- vue中 key 值的作用
原文地址 我们知道,vue和react都实现了一套虚拟DOM,使我们可以不直接操作DOM元素,只操作数据便可以重新渲染页面.而隐藏在背后的原理便是其高效的Diff算法. vue和react的虚拟DOM ...