镜像(Image)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了镜像(Image)相关的知识,希望对你有一定的参考价值。

参考技术A

1.列出镜像列表

2.查找镜像
1.如果需要某个镜像时,可以从 Docker Hub 网站搜索镜像。
2.使用 docker search 命令搜索镜像。比如需要一个 httpd 镜像来用于构建 web 服务。可通过 docker search 搜索 httpd ,从而找到适合的镜像。
3.各字段含义如下:

3.删除镜像

使用 ubuntu 16.04 创建一个新容器,在该容器内运行 gcc -v 可查看 gcc 是否安装,查看 gcc 的版本号。

docker commit :从容器创建一个新的镜像

语法
docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]
(指定要创建的目标镜像名)

OPTIONS说明:

4.构建镜像
首先需要一个 Dockerfile 文件,其中包含一系列告诉 Docker 如何构建镜像的指令。
该Dockerfile文件位于 ~/course/docker/Dockerfile/ubuntu_gcc,使用命令 cd 切换到该目录, 通过命令 cat 查看 Dockerfile 内容。
每一个指令都会在镜像上创建一个新的层,每一个指令的前缀都必须是大写的。
第一条FROM,指定使用哪个镜像源。
第二条MAINTAINER,说明当前镜像的维护人的信息。
RUN 指令用于说明在构建 docker 镜像时执行哪些命令,例如安装哪些软件。
EXPOSE 指令说明开放哪些端口。
[图片上传中...(-94439e-1638445720289-0)]

docker build
命令用于使用 Dockerfile 创建镜像。

语法
docker build [OPTIONS] PATH | URL | -
OPTIONS说明:

5.设置镜像标签
可以使用 docker tag 命令,为镜像添加一个新的标签。
docker tag 命令的语法为:
docker tag <镜像ID> 新镜像名:新tag。

以httpd为例

docker cp /宿主机目录 容器id:/容器文件目录  #将宿主机目录内容复制到容器内部目录

容器有一个比较麻烦的地方,就是每次重启之后会导致容器内的文件重置为初始化状态。所以我们还需要对容器内的文件进行持久化配置持久化配置有两种方法

方法一:直接复制。如docker cp 容器id:/etc/prometheus /zhao #将容器内部的文件复制到宿主机的/zhao文件夹下

方法二:docker run --name myprometheus -v /zhao/prometheus:/etc/prometheus -d 镜像id  #其中-v是指映射逻辑卷的意思,将宿主机上的/zhao/prometheus里的文件和文件夹复制到容器的/etc/prometheus里。-d是指后台运行

openstack migrate image

在更改了openstack的镜像目录后,在使用之前的镜像创建虚拟机的时候会出现"ImageNotFound"的错误。具体是因为把之前目录的镜像移动到新目录了。但是这样使用之前的镜像还是会在之前的目录查找镜像,找不到该镜像文件就会出现 "valid not host found"的错误。


解决该问题的办法就是把更改目录后的镜像还原到原目录,还是使用新的目录上传镜像。


这样说有点绕,意思就是说,在更改镜像目录的时候,之前原目录里面的镜像不能删,使用更改以后的镜像目录来上传镜像。

以上是关于镜像(Image)的主要内容,如果未能解决你的问题,请参考以下文章

如何将buildroot生成的image 做成镜像u盘

基于docker容器创建镜像image

基于docker容器创建镜像image

云原生 | Docker篇Docker镜像(image)与服务

关于docker镜像IMAGE的备份和还原操作

Docker:搭建私有镜像仓储(image registry)