当前位置: 首页 > 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;每个知识点的修正和深入主要参…...

【OSG学习笔记】Day 18: 碰撞检测与物理交互

物理引擎&#xff08;Physics Engine&#xff09; 物理引擎 是一种通过计算机模拟物理规律&#xff08;如力学、碰撞、重力、流体动力学等&#xff09;的软件工具或库。 它的核心目标是在虚拟环境中逼真地模拟物体的运动和交互&#xff0c;广泛应用于 游戏开发、动画制作、虚…...

【力扣数据库知识手册笔记】索引

索引 索引的优缺点 优点1. 通过创建唯一性索引&#xff0c;可以保证数据库表中每一行数据的唯一性。2. 可以加快数据的检索速度&#xff08;创建索引的主要原因&#xff09;。3. 可以加速表和表之间的连接&#xff0c;实现数据的参考完整性。4. 可以在查询过程中&#xff0c;…...

基于ASP.NET+ SQL Server实现(Web)医院信息管理系统

医院信息管理系统 1. 课程设计内容 在 visual studio 2017 平台上&#xff0c;开发一个“医院信息管理系统”Web 程序。 2. 课程设计目的 综合运用 c#.net 知识&#xff0c;在 vs 2017 平台上&#xff0c;进行 ASP.NET 应用程序和简易网站的开发&#xff1b;初步熟悉开发一…...

Day131 | 灵神 | 回溯算法 | 子集型 子集

Day131 | 灵神 | 回溯算法 | 子集型 子集 78.子集 78. 子集 - 力扣&#xff08;LeetCode&#xff09; 思路&#xff1a; 笔者写过很多次这道题了&#xff0c;不想写题解了&#xff0c;大家看灵神讲解吧 回溯算法套路①子集型回溯【基础算法精讲 14】_哔哩哔哩_bilibili 完…...

Qt Widget类解析与代码注释

#include "widget.h" #include "ui_widget.h"Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget) {ui->setupUi(this); }Widget::~Widget() {delete ui; }//解释这串代码&#xff0c;写上注释 当然可以&#xff01;这段代码是 Qt …...

ETLCloud可能遇到的问题有哪些?常见坑位解析

数据集成平台ETLCloud&#xff0c;主要用于支持数据的抽取&#xff08;Extract&#xff09;、转换&#xff08;Transform&#xff09;和加载&#xff08;Load&#xff09;过程。提供了一个简洁直观的界面&#xff0c;以便用户可以在不同的数据源之间轻松地进行数据迁移和转换。…...

DeepSeek 技术赋能无人农场协同作业:用 AI 重构农田管理 “神经网”

目录 一、引言二、DeepSeek 技术大揭秘2.1 核心架构解析2.2 关键技术剖析 三、智能农业无人农场协同作业现状3.1 发展现状概述3.2 协同作业模式介绍 四、DeepSeek 的 “农场奇妙游”4.1 数据处理与分析4.2 作物生长监测与预测4.3 病虫害防治4.4 农机协同作业调度 五、实际案例大…...

鸿蒙DevEco Studio HarmonyOS 5跑酷小游戏实现指南

1. 项目概述 本跑酷小游戏基于鸿蒙HarmonyOS 5开发&#xff0c;使用DevEco Studio作为开发工具&#xff0c;采用Java语言实现&#xff0c;包含角色控制、障碍物生成和分数计算系统。 2. 项目结构 /src/main/java/com/example/runner/├── MainAbilitySlice.java // 主界…...

Java线上CPU飙高问题排查全指南

一、引言 在Java应用的线上运行环境中&#xff0c;CPU飙高是一个常见且棘手的性能问题。当系统出现CPU飙高时&#xff0c;通常会导致应用响应缓慢&#xff0c;甚至服务不可用&#xff0c;严重影响用户体验和业务运行。因此&#xff0c;掌握一套科学有效的CPU飙高问题排查方法&…...

iOS性能调优实战:借助克魔(KeyMob)与常用工具深度洞察App瓶颈

在日常iOS开发过程中&#xff0c;性能问题往往是最令人头疼的一类Bug。尤其是在App上线前的压测阶段或是处理用户反馈的高发期&#xff0c;开发者往往需要面对卡顿、崩溃、能耗异常、日志混乱等一系列问题。这些问题表面上看似偶发&#xff0c;但背后往往隐藏着系统资源调度不当…...