docker学习之路使用docker镜像
Posted xysr-tom
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了docker学习之路使用docker镜像相关的知识,希望对你有一定的参考价值。
三、使用docker镜像
1.1.获取镜像
docker [image] pull NAME[:TAG]
直接从docker hub镜像源上来下载镜像
1.1.2.栗子
获取ybuntu 18.04系统镜像
docker pull ubuntu:18.04
注意:如果不加后面的tag,那么会选择最新的latest标签,这会下载最新的镜像,一般来说,最新的是会随时变化的,不稳定的,所以不要在生产环境中使用
docker pull ubuntu
从非官方下载镜像,需要完整的仓库地址
docker pull hub.c.163.com/public/ubuntu:18.04
1.1.3.pull 子命令包括
-a ,--all-tags=true|false:获取所有
--disable-content-trust:取消校验
--registry-mirror=proxy_URL:镜像获取加速
2.1.查看镜像信息
docker images 或者 docker image ls
2.1.2.images子命令
-a , --all=true|false:列出所有
--digests=true|false:列出镜像数值摘要
-f , --filter=[]:过滤列出的镜像
--format="TEMPLATE":控制输出格式
--no-trunc=true|false:对输出太长信息是否截取
-q , --quite=true|false:仅输出ID信息
2.2.使用tag添加镜像标签
docker tag ubuntu:latest myubuntu:latest
2.3.使用inspect查看详细信息
docker inspect ubuntu:18.04
2.3.1.查看的信息是以json格式返回的消息,如果要获取其中一项内容,用 -f 来制定
2.3.2.栗子
获取镜像的Architecture
docker inspect -f {{".Architecture"}} ubuntu:18.04
2.4.使用history查看镜像历史
docker history ubuntu:18.04
3.1.搜索镜像
docker sreach keyword
3.1.2.支持的参数
-f , --filter filter:过滤输出内容
--format string:格式化输出内容
--limit int:限制结果格数
--no-trunc:不截断输出结果
3.1.3.栗子
3.1.3.1.搜索官方提供的带nginx关键字的镜像
docker sreach --filter=is-official=true nginx
3.1.3.2.搜索所有收藏数超过4的关键字报错tensorflow的镜像
docker srerch --filter=stars=4 tensorflow
4.1.删除和清理镜像
4.1.1.使用标签删除镜像
docker rmi IMAGE docker image rm IMAGE 其中IMAGE可以为标签或者ID
docker rmi myubuntu:latest
4.1.2.支持参数
-f , -force:强制删除
-no-prune:不要清理未带标签的父镜像
4.2.1.使用镜像ID删除镜像
docker rmi ID
注意:在删除镜像时,如果有容器使用了该镜像,我们应该先用docker rm 删除依赖该镜像的容器,再来删除镜像
4.3.1.清理镜像
docker在使用一段时间后,会遗存一些临时镜像文件和无用的文件,通过docker image prune命令来清理
4.3.2.支持选项
-a , -all:删除所有无用镜像,不光是临时镜像
-filter filter:只清理过滤镜像
-f , -force:强制删除镜像
docker image prune -f
5.1.创建镜像
三种方法:基于已有镜像的容器创建、基于本地模板导入、基于Dockerfile创建
docker commit、import、build
5.1.1.基于已有容器创建
docker commit命令
5.1.2.主要参数
-a , --author=" ":作者信息
-c , --change=[ ]:提交时执行dockerfile指令
-m , --message=" ":提交信息
-p , --pause=true:提交时暂停容器
5.1.3.栗子
运行一个镜像,创建一个test文件,提交为新镜像
创建文件 docker run -it ubuntu:18.04 /bin/bash touch test exit ###这里退出时需要记住容器ID:a925cb40b3f0 创建新镜像test:0.1 docker commit -m "add file" -a "test user" a925cb40b3f0 test:0.1
5.2.1.基于本地模板导入
docker import
5.2.2.栗子
假如下载了一个ubuntu-18.01的模板压缩包,导入
cat ubuntu-18.01-x86_64-minimal.tar.gz | docker import - ubuntu:18.04
5.3.1.基于Dockerfile创建
5.3.2栗子
基于debian:stretch-silm镜像那幢python3环境,构成一个python:3镜像
编辑Dockerfile文件
FROM debian:stretch-slim LABEL version="1.0" maintainer="docker user <docker_user@github>" RUN apt-get update && apt-get install -y python3 && apt-get clean && rm -rf /var/lib/apt/lists/*
执行docker bulid进行编译
docker bulid -t python:3
6.1.存出和载入镜像
6.1.1.存出镜像
docker save命令,支持参数-o、-output string
6.1.2.栗子
导出镜像ubuntu:18.04为ubuntu_18.04.tar
docker sae -o ubuntu_18.04.tar ubuntu:18.04
6.2.1.载入镜像
docker load命令,支持参数-i、-input string
6.2.2.栗子
导入文件ubuntu_18.04.tar到本地镜像列表
docker load -i ubuntu_18.04.tar 或者 docker load < ubuntu_18.04.tar
导入成功后,所有相关元数据信息都会保留(包括标签等),与导出的源镜像一致。
7.1.上传镜像
docker push命令上传本地镜像到仓库,默认到docker hub官方仓库
格式为:docker push NAME[:TAG] | [REGISTRY_HOST[:REGISTRY_PORT]/]NAME[:TAG]
7.1.2栗子
给本地镜像test:latest添加新标签,上传到仓库
docker tag test:latest user/test:latest docker push user/test:latest
注意:第一次上传时需要登录注册账号的信息,之后会记录到本地的~/.docker目录下。
以上是关于docker学习之路使用docker镜像的主要内容,如果未能解决你的问题,请参考以下文章
Docker删除报错:Error response from daemon: conflict: unable to delete 08b152afcfae (must be forced)(代码片段