Docker参数,以及仓库搭建

一·。Docker的构建参数

注释:

1.对于CMD,如果不想显示,而是使用交互界面:docker run -ti --rm --name test2 busybox:v5 sh

2.对于CMD,一个交互界面只可以使用一个,如果想多次使用CMD,则用ENTRYPOINT进行替换

FROM的基本使用

mkdir /docker

cd /docker

vi /Dockerfile

  • FROM busybox:这是 Dockerfile 中的一条指令,FROM 用于指定基础镜像,busybox 是一个轻量级的 Linux 工具集镜像,许多 Docker 镜像都会基于它来构建,以此为基础可以在其之上添加额外的功能。
  • RUN touch /leefileRUN 指令用于在镜像构建过程中执行命令。touch 是 Linux 系统中用于创建空文件的命令,/leefile 是要创建的文件的路径,这里表示在镜像中创建一个名为 leefile 的空文件。

docker build -t busybox:v2 . (或者使用:docker build -f /docker/Dockerfile1 -t busybox:v3 .)

docker build 是 Docker 用于构建镜像的命令,-t 选项用于给构建的镜像指定一个标签(tag),busybox:v2 表示镜像的名称为 busybox,版本号为 v2

docker run -it --rm --name test1 busybox:v2

--rm 选项表示容器停止运行后自动删除容器,避免占用过多磁盘空间。

综上所述,这一系列操作的整体流程是:先创建一个目录,然后在该目录下创建一个 Dockerfile 来定义镜像的构建步骤,接着使用 docker build 命令基于 Dockerfile 构建一个名为 busybox:v2 的镜像,最后使用 docker run 命令基于这个镜像启动一个交互式的容器,并将其命名为 test1,容器停止后会自动删除。

docker history busybox:v2:可以用于查看该镜像版本的信息

COPY的使用

将passwd复制到容器内

1.首先进行文件的复制,copy /etc/passwd  /docker

2.vi /docker/Dockerfile1

3.docker build -f /docker/Dockerfile1 -t busybox:v3 .

4.docker run -it --rm --name test1 busybox:v2

ADD和COPY相似,可以进行压缩文件

二。docker内部署centos

三。搭建docker的私有仓库

1. docker pull registry:拉取文件

2. docker run -d -p 5000:5000 --restart=always registry

创建register容器,-p端口5000,--restart=always:这是一个重启策略选项,指定容器在退出后总是自动重启,确保镜像仓库服务能够持续运行

3.docker tag busybox:latest 192.168.142.135:5000/busybox:latest

  • docker tag用于为镜像添加标签,方便对镜像进行标识和管理。
  • busybox:latest:是源镜像的名称和标签,这里表示本地的busybox镜像的latest版本。
  • 192.168.142.135:5000/busybox:latest:是目标标签,指定了将本地的busybox:latest镜像标记为可以推送到地址为192.168.142.135、端口为 5000 的本地镜像仓库中的busybox:latest镜像。

4.docker push 192.168.142.135:5000/busybox:latest

  • docker push:用于将本地的镜像推送到指定的镜像仓库。
  • 192.168.142.135:5000/busybox:latest:指定了要推送的镜像的目标地址和名称标签

5.vi /etc/docker/daemon.json 

6.测试:

注释:register文件在:

/var/lib/docker/volumes/a03953bf68bf99f30e7529aac89ed497fbfbd7af6c55abc71330123b6ce60f82/_data/docker/registry/v2/repositories

拓展:私有仓库直接存入,风险太大,需要进行加密保证安全性:

1.mkdir certs:创建用于存储共公私钥的目录

2.openssl req -newkey rsa:4096 -nodes -sha256 -keyout certs/jiami.org.key -addext "subjectAltName =DNS:reg.jiami.org" -x509 -days 365 -out certs/jiami.org.crt

注释:使用openssl req生成一个4096位的私钥,采用sha256哈希算法最终将私钥存储与certs/jiami.org.key文件内,指定解析后,生成-x509证书,最终将证书保存于后续文件

3.docker run -d -p 443:443 --restart=always -v /root/certs:/certs

-e REGISTRY_HTTP_ADDR=0.0.0.0:443

-e REGISTRY_HTTP_TLS_CERTIFICATE=/certs/jiami.org.crt

-e REGISTRY_HTTP_TLS_KEY=/certs/jiami.org.key registry:latest

注释:-v /root/certs:/certs,-v表挂载,将主机上的/root/cets挂载于容器内的certs,-e表设置环境变量,设置端口,证书和私钥

4. mkdir -p /etc/docker/certs.d/reg.jiami.org:创建一个docker子目录用于存储证书

5.cp /root/certs/jiami.org.crt /etc/docker/certs.d/reg.jiami.org/ca.crt:将证书复制于文件

6.systemctl restart docker

7.docker tag nginx:v1 reg.jiami.org/nginx:v1:打标签

8.docker push reg.jiami.org/nginx:v1:进行推送

四。为仓库建立登陆认证:(前提创建好私钥和证书)

1.yum install httpd-tools:下载登陆工具

2.mkdir auth

3. htpasswd -Bc auth/.htpasswd lee:为目录创建密码和用户lee

注释:再次添加密码和用户不需要添加c,只要-B

4. docker run -d -p 443:443 --restart=always -v /root/certs:/certs

-e REGISTRY_HTTP_ADDR=0.0.0.0:443

-e REGISTRY_HTTP_TLS_CERTIFICATE=/certs/jiami.org.crt

-e REGISTRY_HTTP_TLS_KEY=/certs/jiami.org.key -v /root/auth:/auth

-e REGISTRY_AUTH=".htpasswd"

-e "REGISTRY_AUTH_HTPASSWD_REALM=Registry Realm"

-e "REGISTRY_AUTH_HTPASSWD_PATH=/auth/.htpasswd" registry

注释:必须拥有此文件,提供http加密

注释:在以后上传任何东西前,必须进行登陆:docker login reg.jiami.org,否则无法上床内容于私有仓库

五。搭建一个Harbor仓库

wget -c https://github.com/goharbor/harbor/releases/download/v2.10.0/harbor-offline-installer-v2.10.0.tgz

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/29501.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

并发编程——累加器

目录 1 AtomicLong 1.1 核心功能 1.2 实现原理: (1)基于 Unsafe 的底层操作 (2) volatile字段的内存可见性 (3)CAS 操作与 ABA 问题 1.3 性能分析 1.4 使用场景 2 LongAdder 核心设计原理 1 分段存储 2 分散更新策略 3.处理高竞…

10 【HarmonyOS NEXT】 仿uv-ui组件开发之Avatar头像组件开发教程(一)

温馨提示:本篇博客的详细代码已发布到 git : https://gitcode.com/nutpi/HarmonyosNext 可以下载运行哦! 目录 第一篇:Avatar 组件基础概念与设计1. 组件概述2. 接口设计2.1 形状类型定义2.2 尺寸类型定义2.3 组件属性接口 3. 设计原则4. 使用…

天津大学02-深度解读DeepSeek:部署、使用、安全【文末附下载链接】

大模型风险与不当用例——价值观错位 大模型与人类价值观、期望之间的不一致而导致的安全问题,包含:• 社会偏见(Social Bias)LLM在生成文本时强化对特定社会群体的刻板印象,例如将穆斯林与恐怖主义关联,或…

C#程序加密与解密Demo程序示例

目录 一、加密程序功能介绍 1、加密用途 2、功能 3、程序说明 4、加密过程 5、授权的注册文件保存方式 二、加密程序使用步骤 1、步骤一 ​编辑2、步骤二 3、步骤三 4、步骤四 三、核心代码说明 1、获取电脑CPU 信息 2、获取硬盘卷标号 3、机器码生成 3、 生成…

《Python实战进阶》No14: 使用Dask处理大规模数据集

文章特色: 包含3个核心代码块,覆盖延迟计算、分块策略和云原生集成4个架构图/监控面板示意图的占位说明对比表格清晰展示技术选型差异实战案例包含从数据读取到机器学习的完整流水线扩展思考部分引入最新云原生技术实践 Dask 是一个灵活的开源库&#…

React + React-intl @3.xx + TypeScript

声明:此篇文章使用的版本是 "react-intl": "^3.12.0"。 因为react-intl3.xx版本相较于react-intl2.xx版本差别较大,有些API是break change, 所以这篇文章的实现方式,不适用于react-intl2.xx版本。 一: 安装react-intl np…

TON基金会确认冠名赞助2025香港Web3嘉年华,并将于4月8日重磅呈现“TON生态日”

近日,由万向区块链实验室与HashKey Group联合推出的Web3年度盛典——2025香港Web3嘉年华正式宣布,TON基金会确认成为本届嘉年华的冠名赞助商,并将于4月8日在主会场特别举办“TON生态日”专题Side Event,集中展现TON生态的最新技术…

IDEA 基础配置: maven配置 | 服务窗口配置

文章目录 IDEA版本与MAVEN版本对应关系maven配置镜像源插件idea打开服务工具窗口IDEA中的一些常见问题及其解决方案IDEA版本与MAVEN版本对应关系 查找发布时间在IDEA版本之前的dea2021可以使用maven3.8以及以前的版本 比如我是idea2021.2.2 ,需要将 maven 退到 apache-maven-3.…

Mybatis详解-上

目录 Mybatis概述 快速入门 引入依赖 配置数据库参数 持久层代码 基本介绍 一个参数变量 多个参数变量 新增 将自增主键id赋值到userinfo对象里 参数重命名 删除 修改 查询 sql语句重命名的方法查询 指定结果映射关系 复用结果映射关系 驼峰转换 MyBatis的XM…

【PSIM】峰值电流如何用D类触发器

最近做实验发现很多人用D类触发器代替RS触发器进行峰值电流控制。研究了一下发现确实效果更好(模电数电还给老师了。。) 这篇文章研究一下PSIM中D类触发器的使用,以及如何实现峰值电流控制 选用的是带设置重置的D触发器,见下图 …

项目设计之用户注册与登录

流程 表设计 create table if not exists kanyuServer.user_db (id bigint unsigned auto_increment comment 主键primary key,phone varchar(11) not null comment 手机号码,password varchar(128) default null comment 密码,加密存储,user_name varchar(32) de…

贪吃蛇身匀速运动模型

通用运动模型 我们已知斜线为移动的距离 d d d, x x x轴总偏移量为 d x dx dx, y y y轴总偏移量为 d y dy dy,在一帧当中,我们也知道能走的距离为 m d md md。那么作为一般的运动模型,该如何确定我们进行移动的方向呢&…

项目管理工具 Maven

目录 1.Maven的概念 1.1​​​​​什么是Maven 1.2什么是依赖管理 1.3什么是项目构建 1.4Maven的应用场景 1.5为什么使用Maven 1.6Maven模型 2.初识Maven 2.1Maven安装 2.1.1安装准备 2.1.2Maven安装目录分析 2.1.3Maven的环境变量 2.2Maven的第一个项目 2.2.1按照约…

SSM架构 +Nginx+FFmpeg实现rtsp流转hls流,在前端html上实现视频播放

序言: 本文介绍通过SSM架构 NginxFFmpeg实现rtsp流转hls流,在前端html上实现视频播放功能。此方法可用于网络摄像头RTSP视频流WEB端实时播放。(海康和大华都可以),我使用的是海康 步骤一:安装软件 FFmpeg…

超链接打开新页签传递参数

背景 有一个需求,网站1点击按钮后跳转到页面2,页面1和页面2的域名不同,并且需要传递参数A,再 那么最简单的就是 在url上带参数A 比如 https://xx.com?Axxx ,从url上的queryParam上就能获取参数 但很可惜&#xff0c…

【入门级篇】保姆级教程:零基础实现DeepSeek本地部署的两种终极方案(附避坑指南)

关于DeepSeek的革命性冲击的看法 大家好,前阵子在忙着DeepSeek的一些本地化部署和一些开发工具,工作流的工作,最近刚好有空,借助零散时间给大家分享下DeepSeek的一些应用,为此我写了一篇专栏,从浅入深的介绍DeepSeek的一些技术,应用,以及DeepSeek的论文分析。 首先我们…

nginx简单命令启动,关闭等

启动命令 #启动nginx start nginx重启命令 比如修改了配置文件,用这个命令重启生效 #重启nginx nginx -s reload3,查看端口占用 #查看端口占用 netstat -aon4,关闭nginx 如果使用cmd命令窗口启动nginx, 关闭cmd窗口是不能…

强化学习(赵世钰版)-学习笔记(2.状态值与贝尔曼方程)

这是本课程的第二章,讲述状态值与贝尔曼(Bellman)方程的相关概念。 回报值(Return)的重要性:计算回报值可以用于评估各策略的优劣,可以量化分析。 回报值的计算方法:设Vi为某策略下起…

STM32——定时器

定时器有 捕获脉冲宽度、计算PWM占空比、输出PWM波形以及编码器计数等各种功能。 定时器又能分为 基本定时器:TIM6和TIM7通用定时器:TIM2、TIM3、TIM4和TIM5高级定时器:TIM1、TIM8 一、计数和分频 每当一个方波信号的上升沿经过寄存器&…

链表双指针经典习题

链表双指针经典习题 链表的分解删除排序链表中的重复元素2(重复元素彻底删除)方法一:分解链表方式二:快慢指针递归解法 链表的合并丑数2有序矩阵中第k小的元素查找和最小的k对数字两数相加两数相加2 回文单链表回文链表 迭代和递归…