创建上传镜像

使用docker镜像

•使用和管理本地主机上的images

•创建一个基础的images

•上传images到docker hub (公共images仓库)

•列出本地主机上已经存在的images

1.搜索镜像

NAME:镜像名称

DESCRIPTION:描述 STARS:星级,代表受欢迎程度

OFFICIAL:是否官方创建

AUTOMATED:是否自动创建

这里是最新的搜索镜像方法

docker search | Docker Documentation

2.获取镜像

网址:Docker Hub

这里先用Ubuntu的

进来后点击tags下面显示各个版本的镜像,直接复制即可

这里下载18.04的

docker pull ubuntu:18.04

3.查看镜像信息

使用docker images命令可以列出本地主机上已有镜像的基本信息。

docker images

为了方便在后续工作中使用特定镜像,还可以使用docker tag命令来为本地镜像任意添 加新的标签。

它们实际上指向同一个镜像文件,只是别 名不同而已

docker tag httpd:latest httpd:0.1

1649292198939.png

查看镜像详细信息:

docker inspect httpd

使用history命令查看镜像历史

docker history httpd

4.删除镜像

报下面这个错是因为有容器正在使用

1649293483012.png

如果非要强制删除可以使用 docker rmi -f

注意,通常并不推荐使用-f参数来强制删除一个存在容器依赖的镜 像。正确的做法是,先删除依赖该镜像的所有容器,再来删除镜像。

5.创建镜像

1)基于已有镜像的容器创建

先启动一个镜像变成容器

docker run -itd --name web01 -P httpd

查看一下

1649294308916.png

主机访问: IP+48153

1649294398141.png

修改该页面的内容

进入该容器:

docker exec -it web01 /bin/bash
root@d796648c66ec:/usr/local/apache2# ls
bin  build  cgi-bin  conf  error  htdocs  icons  include  logs  modules
root@d796648c66ec:/usr/local/apache2# cd htdocs/
root@d796648c66ec:/usr/local/apache2/htdocs# ls
index.html
root@d796648c66ec:/usr/local/apache2/htdocs# cat index.html
<html><body><h1>It works!</h1></body></htmlroot@d796648c66ec:/usr/local/apache2/htdocs#  root@d796648c66ec:/usr/local/apache2/htdocs#  echo "study" >> index.html
root@d796648c66ec:/usr/local/apache2/htdocs# cat index.html
study
刷新页面就可以看到添加的内容

exit退出

此时该容器跟原ubuntu:14.04镜像相比,已经发生了改变,可以使用docker commit命令来 提交为一个新的镜像。提交时可以使用ID或名称来指定容器

1649295798882.png

提交:-m提交信息;-a作者

1649296519516.png

2)基于本地模板导入

直接导入一个镜像地址:http://download.openvz.org/template/precreated/

这里用fedora-23-x86_64.tar.gz。下载到宿主机上后将其拖到虚拟机中

使用命令导入

cat fedora-23-x86_64.tar.gz | docker import - fedora:23

查看镜像发现已经有了

1649297334191.png

6.存出和载入镜像

存出镜像

1649297655976.png

载入镜像

docker load < httpd_myweb1.tar

使用docker images进行查看

7.上传镜像

用户可以通过docker push命令,把自己创建的镜像上传到仓库中来共享。默认上传到 Docker Hub官方仓库(需要登录),官网地址:https://hub.docker.com。

1)首先申请一个docker hub帐号

2)注册成功后,登录到docke hub点击一下按钮:create —> create repository ,取个名 字,这里我们最终创建的仓库名称:lidnyun/kube-apiserver-amd64 ,这个lidnyun是帐 号,kube-apiserver-amd64是其中一个仓库名。

3)在本地登录docker hub帐号,命令如下:

root@master:~# docker login

Username: lidnyun

Password:

4)为存在于本地的镜像打标签。

1649299365163.png

马赛克部分要跟下图马赛克名一样

1649299436861.png

5)push镜像

docker push <hub-user>/<repo-name>:<tag>
例子:docker push lidnyun/kube-apiserver-amd64:v1.5.5

19)]

马赛克部分要跟下图马赛克名一样

[外链图片转存中…(img-Uyc77ZkX-1649643415619)]

5)push镜像

docker push <hub-user>/<repo-name>:<tag>
例子:docker push lidnyun/kube-apiserver-amd64:v1.5.5
### OpenStack 创建上传镜像时无法获取 Glance 服务版本的解决方案 在 OpenStack 中创建上传镜像时遇到 `cannot retrieve glance service version` 的错误可能由多种原因引起。以下是对此问题的分析以及解决方法: #### 错误分析 该错误通常表明客户端尝试连接到 Glance API 并检索其支持的服务版本失败。这可能是由于网络配置不当、API 地址不正确或认证信息有误引起的。 如果虚拟化环境中存在其他错误,例如 QEMU 设备初始化失败[^1] 或者未正确定义虚拟化类型[^3],也可能间接影响镜像的正常创建过程。 --- #### 解决方案 ##### 1. 验证 Keystone 和 Glance 的服务状态 确认 Glance 和 Keystone 服务是否运行正常,并验证它们之间的通信是否畅通。可以使用以下命令检查服务端口和服务进程的状态: ```bash systemctl status openstack-glance-api.service curl http://<glance-endpoint>:9292/v2/images ``` 如果返回的结果为空或者显示权限不足,则需要重新核对用户的 Token 是否有效并具有访问权限。 ##### 2. 更新 Nova 配置文件中的虚拟化驱动设置 对于基于 KVM/QEMU 的虚拟化环境,在 `/etc/nova/nova.conf` 文件中应确保设置了正确的虚拟化类型。如果没有正确指定虚拟化驱动程序,可能会引发兼容性问题。可以通过如下方式调整配置项: ```ini [libvirt] virt_type=qemu ``` 此更改适用于 Red Hat Enterprise Linux (RHEL) 及其衍生发行版上的调试场景。 ##### 3. 排查重复设备 ID 导致的问题 当尝试向虚拟机实例附加磁盘或其他硬件资源时,若出现了类似于 “Duplicate ID ‘virtio-disk2’” 这样的提示消息,则说明当前定义中有冲突的情况发生。建议清理残留的数据记录后再重试操作流程。 ##### 4. 安装必要的 Debug 工具包 为了更深入地诊断潜在的技术难题,安装对应的操作系统的 debug 软件包是非常重要的一步。例如针对 RHEL 系统而言,可执行下面这条指令来完成相关依赖组件的部署工作[^2]: ```bash yum install kernel-debuginfo kernel-debuginfo-common-x86_64 ``` --- #### 总结 通过上述措施能够有效地定位并修复因未能成功调取到目标存储库元数据而产生的异常状况。同时也要注意保持软件栈始终处于最新稳定版本之上以便获得更好的性能表现与安全性保障。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值