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学习实践之路[第五站]mysql镜像应用

Docker删除报错:Error response from daemon: conflict: unable to delete 08b152afcfae (must be forced)(代码片段

docker学习之路 深入容器

docker学习11-上传本地镜像到镜像仓库

AWS服务建设之路-Docker集群

Docker学习之路