当前位置: 首页 > news >正文

Docker镜像制作与推送

目录

Docker镜像制作

搭建私服

将本地镜像推送到私有库


Docker镜像制作

以创建一个新ubuntu镜像,并安装vim命令示例

运行一个ubuntu镜像,发现在镜像里面无法使用vim命令因为该ubuntu镜像只包括了其最基本的内核命令

[root@localhost ~]# docker images
REPOSITORY                          TAG       IMAGE ID       CREATED         SIZE
ubuntu                              latest    ba6acccedd29   2 years ago     72.8MB
[root@localhost ~]# docker run -it ba6acccedd29 /bin/bash
root@f1e088df465f:/# vim a.txt
bash: vim: command not found

给ubuntu容器安装vim

root@f1e088df465f:/# apt-get update
root@f1e088df465f:/# apt-get -y install vim

安装完成之后就可以在容器里面使用vim编辑器进行文件的编辑了

root@f1e088df465f:/# vim a.txt
root@f1e088df465f:/# 
将这个运行的容器制作成一个带有vim功能的ubuntu镜像
docker commit -m="提交的描述信息" -a="作者" 容器ID 要创建的目标镜像名:[标签名]
[root@localhost ~]# docker commit -m="add vim" -a="mgaw" f1e088df465f linux1:1.00001
sha256:6eb1515df77a8a00c6ae3ff5c541f26a50fd585a4b67d321280612cef1f852e1
查看镜像,发现比原镜像大了很多
[root@localhost ~]# docker images
REPOSITORY                          TAG       IMAGE ID       CREATED          SIZE
linux1                              1.00001   6eb1515df77a   31 seconds ago   189MB
ubuntu                              latest    ba6acccedd29   2 years ago      72.8MB

运行自己制作的镜像

[root@localhost ~]# docker run -it 6eb1515df77a /bin/bash
root@cc4ba90ce5d4:/# vim a.txt
root@cc4ba90ce5d4:/# 
发现确实带有vim功能了

搭建私服

下载镜像Docker Registry

[root@localhost ~]# docker pull registry

运行私服库Registry,相当于本地的私有Docker hub

[root@localhost ~]# docker run -d -p 5000:5000 -v /mgaw/myregistry/:/tmp/registry --privileged=true registry
18d989f67ba7cab18d1654227bfb8aa4350d19b3e2d9f912302f1b19bc7d852e

将本地镜像推送到私有库

以创建一个新ubuntu镜像,并安装ifconfig命令示例

运行一个ubuntu镜像,发现在镜像里面无法使用ifconfig命令因为该ubuntu镜像只包括了其最基本的内核命令

[root@localhost ~]# docker images
REPOSITORY                          TAG       IMAGE ID       CREATED         SIZE
ubuntu                              latest    ba6acccedd29   2 years ago     72.8MB
[root@localhost ~]# docker run -it ba6acccedd29 /bin/bash
root@32766e3fc651:/# ifconfig
bash: ifconfig: command not found

给ubuntu容器安装ifconfig

root@32766e3fc651:/# apt-get update
root@32766e3fc651:/# apt-get install net-tools
root@32766e3fc651:/# ifconfig
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500inet 172.17.0.7  netmask 255.255.0.0  broadcast 172.17.255.255ether 02:42:ac:11:00:07  txqueuelen 0  (Ethernet)RX packets 9126  bytes 30122477 (30.1 MB)RX errors 0  dropped 0  overruns 0  frame 0TX packets 7207  bytes 395192 (395.1 KB)TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536inet 127.0.0.1  netmask 255.0.0.0loop  txqueuelen 1000  (Local Loopback)RX packets 0  bytes 0 (0.0 B)RX errors 0  dropped 0  overruns 0  frame 0TX packets 0  bytes 0 (0.0 B)TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

将这个运行的容器制作成一个带有ifconfig功能的ubuntu镜像

[root@localhost ~]# docker commit -m="ifconfig" -a="mgaw" 32766e3fc651 ubuntu1:1.00002
sha256:120ca7640729ad7ca74912b3ca8f9f0dceedf7a798e39b59d122652907dd3a0e

查看镜像,发现比原镜像大了很多

[root@localhost ~]# docker images
REPOSITORY                          TAG       IMAGE ID       CREATED          SIZE
ubuntu1                             1.00002   120ca7640729   47 seconds ago   122MB
ubuntu                              latest    ba6acccedd29   2 years ago      72.8MB
使用 curl 工具验证私服库上有什么镜像
[root@localhost ~]# curl -XGET http://192.168.117.131:5000/v2/_catalog
{"repositories":[]}
目前私服库没有镜像上传过
将新镜像 ubuntu1:1.00002 修改符合私服规范的 Tag
命令格式: docker tag 镜像:Tag Host:Port/Repository:Tag
[root@localhost ~]# docker tag ubuntu1:1.00002 192.168.117.131:5000/ubuntu1:1.00002

查看修改后的镜像

[root@localhost ~]# docker images
REPOSITORY                          TAG       IMAGE ID       CREATED          SIZE
ubuntu1                             1.00002   120ca7640729   5 minutes ago    122MB
192.168.117.131:5000/ubuntu1        1.00002   120ca7640729   5 minutes ago    122MB
ubuntu                              latest    ba6acccedd29   2 years ago      72.8MB
修改 docker 配置文件使之支持 http
vim /etc/docker/daemon.json

新增如下内容

"insecure-registries": ["192.168.117.131:5000"]

最后的结果如下

 重新启动docker,并保证linux防火墙没有对5000端口拦截

[root@localhost ~]# systemctl restart docker
由于重新启动了docker,需要重新启动 docker registry 容器
[root@localhost ~]# docker run -d -p 5000:5000 -v /mgaw/myregistry/:/tmp/registry --privileged=true registry
bbef35a7bd2f80525932769666c320751565f7f01bf095f30bbfe30fc219b564

推送镜像到私服

[root@localhost ~]# docker push 192.168.117.131:5000/ubuntu1:1.00002
The push refers to repository [192.168.117.131:5000/ubuntu1]
48d7d917047c: Pushed 
9f54eef41275: Pushed 
1.00002: digest: sha256:94872dd08e5e7d4c5921cb3581f8e01631f85a81a34e9dea83a28212ffb48593 size: 741

查看私服库上是否存在镜像

[root@localhost ~]# curl -XGET http://192.168.117.131:5000/v2/_catalog
{"repositories":["ubuntu1"]}

 从私服上拉取镜像

[root@localhost ~]# docker pull 192.168.117.131:5000/ubuntu1:1.00002
1.00002: Pulling from ubuntu1
Digest: sha256:94872dd08e5e7d4c5921cb3581f8e01631f85a81a34e9dea83a28212ffb48593
Status: Image is up to date for 192.168.117.131:5000/ubuntu1:1.00002
192.168.117.131:5000/ubuntu1:1.00002

删除192.168.117.131:5000/ubuntu1镜像

[root@localhost ~]# docker rmi -f 120ca7640729
[root@localhost ~]# docker images
REPOSITORY                          TAG       IMAGE ID       CREATED          SIZE
linux1                              1.00001   6eb1515df77a   48 minutes ago   189MB
ubuntu                              latest    ba6acccedd29   2 years ago      72.8MB
[root@localhost ~]# docker pull 192.168.117.131:5000/ubuntu1:1.00002
1.00002: Pulling from ubuntu1
7b1a6ab2e44d: Already exists 
0981e371e319: Pull complete 
Digest: sha256:94872dd08e5e7d4c5921cb3581f8e01631f85a81a34e9dea83a28212ffb48593
Status: Downloaded newer image for 192.168.117.131:5000/ubuntu1:1.00002
192.168.117.131:5000/ubuntu1:1.00002

再次查看镜像发现镜像成功拉取下来了

[root@localhost ~]# docker images
REPOSITORY                          TAG       IMAGE ID       CREATED          SIZE
192.168.117.131:5000/ubuntu1        1.00002   120ca7640729   19 minutes ago   122MB
linux1                              1.00001   6eb1515df77a   49 minutes ago   189MB
ubuntu                              latest    ba6acccedd29   2 years ago      72.8MB

至此将本地镜像推送到私有库完成

相关文章:

Docker镜像制作与推送

目录 Docker镜像制作 搭建私服 将本地镜像推送到私有库 Docker镜像制作 以创建一个新ubuntu镜像&#xff0c;并安装vim命令示例 运行一个ubuntu镜像&#xff0c;发现在镜像里面无法使用vim命令&#xff0c;因为该ubuntu镜像只包括了其最基本的内核命令 [rootlocalhost ~]…...

Pandas时序数据分析实践—基础(1)

目录 1. Pandas基本结构2. Pandas数据类型2.1. 类型概述2.1.1. 整数类型&#xff08;int&#xff09;&#xff1a;2.1.2. 浮点数类型&#xff08;float&#xff09;&#xff1a;2.1.3. 布尔类型&#xff08;bool&#xff09;&#xff1a;2.1.4. 字符串类型&#xff08;object&a…...

5.C转python

新始: 13.列表可被改变(数据),元组不可被改变(数据),二者皆与C中的数组的大致相同 14.创建列表方法: 1.一个[ ]就是一个空的列表 2.使用list函数来创建列表 如: 15.可以在[ ]内部指定列表的初始值,打印方法: 如: 16.在python中,在同一个列表中,可以放不同类型的变量(也可…...

输出SearchFacesResponse对象的JSON格式字符串回包乱码解决方案

输出SearchFacesResponse对象的JSON格式字符串设置响应内容类型为"application/json;charsetutf-8"获取响应的字符输出流将SearchFacesResponse对象转化为JSON字符串并输出。 代码片段 System.out.println(SearchFacesResponse.toJsonString(resp)); response.setC…...

P7 链表 链表头前方插入新节点

目录 前言 01 链表头插入数据 示例代码 02 指定节点前方插入新节点 测试代码 前言 &#x1f3ac; 个人主页&#xff1a;ChenPi &#x1f43b;推荐专栏1: 《C》✨✨✨ &#x1f525; 推荐专栏2: 《 Linux C应用编程&#xff08;概念类&#xff09;_ChenPi的博客-CSDN博客》✨…...

SCAU:主对角线上的元素之和

主对角线上的元素之和 Time Limit:1000MS Memory Limit:65535K 题型: 编程题 语言: G;GCC 描述 输入一个3行4列的整数矩阵&#xff0c;计算并输出主对角线上的元素之和输入格式 3行4列整数矩阵输出格式 主对角线上的元素之和输入样例 1 2 3 4 5 6 7 8 9 10 11 12输出…...

c语言——简单客户端demo

以下是一个简单的C语言客户端示例&#xff0c;用于连接到服务器并发送和接收数据&#xff1a; #include <stdio.h> #include <stdlib.h> #include <string.h> #include <sys/socket.h> #include <arpa/inet.h> #include <unistd.h…...

日志检索场景ES->Doris迁移最佳实践:函数篇

函数列表 函数&#xff1a;term函数功能说明&#xff1a;查询某个字段里含有某个关键词的文档参数说明&#xff1a;返回值说明&#xff1a;ES使用示例&#xff1a; {"query": {"term": {"title": "blog"}} }Doris使用示例&#xf…...

【高效开发工具系列】jackson入门使用

&#x1f49d;&#x1f49d;&#x1f49d;欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…...

深入理解网络非阻塞 I/O:NIO

&#x1f52d; 嗨&#xff0c;您好 &#x1f44b; 我是 vnjohn&#xff0c;在互联网企业担任 Java 开发&#xff0c;CSDN 优质创作者 &#x1f4d6; 推荐专栏&#xff1a;Spring、MySQL、Nacos、Java&#xff0c;后续其他专栏会持续优化更新迭代 &#x1f332;文章所在专栏&…...

Hdoop学习笔记(HDP)-Part.07 安装MySQL

目录 Part.01 关于HDP Part.02 核心组件原理 Part.03 资源规划 Part.04 基础环境配置 Part.05 Yum源配置 Part.06 安装OracleJDK Part.07 安装MySQL Part.08 部署Ambari集群 Part.09 安装OpenLDAP Part.10 创建集群 Part.11 安装Kerberos Part.12 安装HDFS Part.13 安装Ranger …...

[数据结构]HashSet与LinkedHashSet的底层原理学习心得

我们区分list和set集合的标准是三个&#xff1a;有无顺序&#xff0c;可否重复&#xff0c;有无索引。 list的答案是&#xff1a;有顺序&#xff0c;可重复&#xff0c;有索引。这也就是ArrayList和LinkedList的共性 set的答案是&#xff1a;顺序内部再区分,不可以重复&#xf…...

使用unity开发Pico程序,场景中锯齿问题

1、问题 使用unity【非HDR】开发Pico程序&#xff0c;场景中锯齿问题&#xff0c;设置了unity的抗锯齿和渲染方式,及悬挂抗锯齿的脚本&#xff0c;都不能很好的解决项目中图片、文字的锯齿问题&#xff0c;通过摸索找到了妥善的方法 1、修改项目中图片的 GenerateMIpMaps 为勾…...

Spring | Spring的基本应用

目录: 1.什么是Spring&#xff1f;2.Spring框架的优点3.Spring的体系结构 (重点★★★) :3.1 Core Container (核心容器) ★★★Beans模块 (★★★) : BeanFactoryCore核心模块 (★★★) : IOCContext上下文模块 (★★★) : ApplicationContextContext-support模块 (★★★)SpE…...

项目开发维护技术文档(梳理总结中)

目录 项目名称——惠誉灵境 一、项目背景 二、架构设计 1.技术栈 2.架构图 3.代码结构 三、模块划分 1.平台首页 2.登录模块 3.系统模块 &#xff08;1&#xff09;系统首页 &#xff08;2&#xff09;组织架构 &#xff08;3&#xff09;权限管控 ①角色管理 &#xff08;4&am…...

【接口测试】Apifox实用技巧干货分享

前言 不知道有多少人和我有着这样相似的经历&#xff1a;从写程序只要不报错就不测试&#x1f60a;&#xff0c;到写了程序若是有bug就debug甚至写单元测试&#xff0c;然后到了真实开发场景&#xff0c;大哥和你说&#xff0c;你负责的功能模块的所有接口写完要测试一遍无误在…...

车联网架构设计(一)_消息平台的搭建

车联网是物联网的一个主要应用方向&#xff0c;车辆通过连接车联网平台&#xff0c;实时进行消息的交互&#xff0c;平台可以提供车辆远程控制&#xff0c;故障检测&#xff0c;车路协同等各方面的功能。 我在车联网行业从事了很长时间的技术工作&#xff0c;参与了整个车联网…...

(蓝桥杯)1125 第 4 场算法双周赛题解+AC代码(c++/java)

题目一&#xff1a;验题人的生日【算法赛】 验题人的生日【算法赛】 - 蓝桥云课 (lanqiao.cn) 思路&#xff1a; 1.又是偶数&#xff0c;又是质数&#xff0c;那么只有2喽 AC_Code:C #include <iostream> using namespace std; int main() {cout<<2;return 0; …...

也可Adobe Animate

Animate CC 由原Adobe Flash Professional CC 更名得来&#xff0c;2015年12月2日&#xff1a;Adobe 宣布Flash Professional更名为Animate CC&#xff0c;在支持Flash SWF文件的基础上&#xff0c;加入了对HTML5的支持。并在2016年1月份发布新版本的时候&#xff0c;正式更名为…...

【面试HOT200】回溯篇

系列综述&#xff1a; &#x1f49e;目的&#xff1a;本系列是个人整理为了秋招面试的&#xff0c;整理期间苛求每个知识点&#xff0c;平衡理解简易度与深入程度。 &#x1f970;来源&#xff1a;材料主要源于【CodeTopHot300】进行的&#xff0c;每个知识点的修正和深入主要参…...

Crustocean/conch:云原生容器化应用构建与部署的自动化工具箱

1. 项目概述与核心价值最近在折腾一个很有意思的项目&#xff0c;叫“Crustocean/conch”。光看这个名字&#xff0c;你可能觉得有点摸不着头脑&#xff0c;又是“甲壳海洋”又是“海螺”的。其实&#xff0c;这是一个非常典型的、由开发者社区驱动的开源项目命名风格&#xff…...

手把手教你配置Jitsi Meet的.env文件:从安全密码生成到Nginx反代(含SSL证书)全攻略

Jitsi Meet生产级部署实战&#xff1a;安全配置与Nginx反代全解析 当内部测试的Jitsi Meet需要面向公网提供服务时&#xff0c;.env文件的精细配置与Nginx反向代理的深度整合就成为关键分水岭。许多团队在过渡阶段常遇到视频卡顿、安全漏洞或证书配置错误等问题&#xff0c;本…...

如何用 curl 命令快速测试 Taotoken 的 API 是否连通

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 如何用 curl 命令快速测试 Taotoken 的 API 是否连通 在接入大模型服务时&#xff0c;直接使用 curl 命令测试 API 是最基础、最直…...

AD21编译报错“contains floating input pins”?别慌,可能是你的元件库电气类型没设对

AD21编译报错“contains floating input pins”深度解析与实战解决方案 当你满怀信心地在AD21中完成PCB设计&#xff0c;点击编译按钮时&#xff0c;突然跳出的"contains floating input pins"报错就像一盆冷水浇下来。这个看似简单的错误提示背后&#xff0c;隐藏着…...

LaTeX引用中文文献总出乱码?可能是你的.bib文件编码和编译顺序没搞对

LaTeX中文文献引用乱码全解析&#xff1a;从编码原理到实战排错 当你熬夜赶论文&#xff0c;终于把参考文献列表整理进.bib文件&#xff0c;满心期待地按下编译键——结果引用位置跳出一串问号&#xff0c;参考文献列表变成乱码战场。这种崩溃瞬间&#xff0c;每个用LaTeX写过中…...

非线性系统安全控制:双相对度CBF框架与应用

1. 非线性系统安全控制基础在机器人控制和自动化系统领域&#xff0c;确保系统在复杂环境中的安全性是首要任务。控制屏障函数&#xff08;Control Barrier Functions, CBFs&#xff09;作为一种强大的数学工具&#xff0c;近年来已成为安全关键控制系统设计的核心方法。与传统…...

研扬EPIC-RPS9工控主板解析:4英寸板载13代酷睿,赋能边缘AI与机器视觉

1. 项目概述&#xff1a;当“小钢炮”遇上工业严苛环境在工业自动化、边缘计算和嵌入式视觉这些领域里&#xff0c;我们常常面临一个经典矛盾&#xff1a;既要强大的算力来处理海量数据、运行复杂算法&#xff0c;又要设备足够紧凑、坚固&#xff0c;能塞进各种空间受限、环境恶…...

VMware macOS解锁神器:Unlocker 3.0终极完整指南

VMware macOS解锁神器&#xff1a;Unlocker 3.0终极完整指南 【免费下载链接】unlocker VMware Workstation macOS 项目地址: https://gitcode.com/gh_mirrors/unloc/unlocker 想要在Windows或Linux电脑上体验macOS系统&#xff0c;却苦于VMware默认不支持苹果系统&…...

初创团队如何利用Taotoken低成本启动AI功能并灵活扩展

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 初创团队如何利用Taotoken低成本启动AI功能并灵活扩展 对于初创团队而言&#xff0c;在产品中引入人工智能能力是提升竞争力的关键…...

ARM ETMv4跟踪寄存器架构与调试实践

1. ARM ETMv4 跟踪寄存器架构概述ARM嵌入式跟踪宏单元(ETM)是处理器调试架构中的关键组件&#xff0c;ETMv4作为其第四代架构&#xff0c;提供了更强大的指令和数据跟踪能力。与传统的断点调试不同&#xff0c;ETM采用实时跟踪技术&#xff0c;能够在不中断处理器运行的情况下&…...