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

Dockerfile推送私有仓库的两个案例

一,编写Dockerfile制作Web应用系统nginx镜像,生成镜像nginx:v1.1,并推送其到私有仓库。

具体要求如下:
(1)基于centos基础镜像;
(2)指定作者信息;
(3)安装nginx服务,将提供的dest目录(提供默认主页index.html)传到镜像内,并将dest目录内的前端文件复制到nginx的工作目录;
(4)暴露80端口;
(5)设置服务自启动。
(6)验证镜像。

1.创建一个Dockerfile

#创建一个目录来存放实验需要的东西
[root@example /]# mkdir /docker_test
[root@example /]# mkdir /docker_test/demo01
[root@example /]# cd /docker_test/demo01#创建dest目录来存放index.html文件
[root@example demo01]# touch ./dest/index.html
[root@example demo01]# echo "welcome to demo01" > dest/index.html
[root@example demo01]# cat dest/index.html
welcome to demo01#编写Dockerfile
[root@example demo01]# vim Dockerfile
[root@example demo01]# cat Dockerfile 
#centos image
FROM centos# author info
LABEL maintainer="XXXXXXX@163.com"#install&& add src files
ADD http://nginx.org/download/nginx-1.24.0.tar.gz /usr/local/src/
ADD dest /usr/share/nginx/html# expose ports
EXPOSE 80#start nginx
CMD ["nginx", "-g", "daemon off;"]#生成镜像
[root@example sbin]# docker build -t nginx:v1.1 .
[+] Building 76.2s (9/9) FINISHED                                      docker:default=> [internal] load build definition from Dockerfile                             0.0s=> => transferring dockerfile: 320B                                             0.0s=> [internal] load .dockerignore                                                0.0s=> => transferring context: 2B                                                  0.0s=> [internal] load metadata for docker.io/library/centos:latest                 0.0s=> http://nginx.org/download/nginx-1.24.0.tar.gz                               76.1s=> [internal] load build context                                                0.0s=> => transferring context: 60B                                                 0.0s=> CACHED [1/3] FROM docker.io/library/centos                                   0.0s=> [2/3] ADD http://nginx.org/download/nginx-1.24.0.tar.gz /usr/local/src/      0.0s=> [3/3] ADD dest /usr/share/nginx/html                                         0.0s=> exporting to image                                                           0.0s=> => exporting layers                                                          0.0s=> => writing image sha256:be8c3b5a7a9a32df1466e317cd02face514345f4be5855efa49  0.0s=> => naming to docker.io/library/nginx:v1.1  #查看一下生成的镜像                                 
[root@example demo01]# docker images | grep nginx
nginx                           v1.1      be8c3b5a7a9a   25 seconds ago   232MB
goharbor/nginx-photon           v2.8.4    375018db778b   7 days ago       116MB

 2.上传私有仓库

我用的私有仓库是Harbor,所以我在Harbor上创建一个项目来实现这次试验

 

[root@example demo01]# docker login -u admin -p Harbor12345 192.168.163.143:80
WARNING! Using --password via the CLI is insecure. Use --password-stdin.
Error response from daemon: Get "https://192.168.163.143:80/v2/": http: server gave HTTP response to HTTPS client
#这里我出现了报错,因为我之前在配置Harbor时把https注释禁止了,所以我需要再修改下配置文件
[root@example demo01]# vim /etc/docker/daemon.json
[root@example demo01]# cat /etc/docker/daemon.json
{"registry-mirrors": ["http://hub-mirror.c.163.com", "https://docker.mirrors.ustc.edu.cn"],
"insecure-registries":["http://192.168.163.143:80"]
}
[root@example demo01]# systemctl daemon-reload 
[root@example demo01]# systemctl restart docker#这里是配置了镜像加速和http访问私有仓库
#之后再登录
[root@example demo01]# docker login -u admin -p Harbor12345 192.168.163.143:80
WARNING! Using --password via the CLI is insecure. Use --password-stdin.
WARNING! Your password will be stored unencrypted in /root/.docker/config.json.
Configure a credential helper to remove this warning. See
https://docs.docker.com/engine/reference/commandline/login/#credentials-storeLogin Succeeded
#如果你可以直接成功登录请忽略上一步#标记并推送镜像
[root@example demo01]# docker tag nginx:v1.1 192.168.163.143:80/demo01/nginx:v1.1
[root@example demo01]# docker push 192.168.163.143:80/demo01/nginx:v1.1
The push refers to repository [192.168.163.143:80/demo01/nginx]
8effb5216144: Pushed 
e1e25aa46a4e: Pushed 
74ddd0ec08fa: Pushed 
v1.1: digest: sha256:8e759f406f6f5e618bdb443862e8cb4454fd579e14985ea5a1173899823af02f size: 947

 

二,Dockerfile快速搭建自己专属的LAMP环境,生成镜像lamp:v1.1,并推送到私有仓库。

 

具体要求如下:
(1)基于centos:6基础镜像;
(2)指定作者信息;
(3)安装httpd、mysql、mysql-server、php、php-mysql、php-gd;
(4)暴露80和3306端口;
(5)设置服务自启动。
(6)验证镜像。

#老样子,创建一个目录来存放
[root@example docker_test]# mkdir demo02
[root@example docker_test]# cd  demo02#编写DOKERFILE
[root@example demo02]# vim Dockerfile
[root@example demo02]# cat Dockerfile
[root@example demo02]# cat Dockerfile
#来自centos6 
FROM centos:6
#作者信息
MAINTAINER "LL <ll2738ii@163.com>"
#下载一系列 
RUN yum install -y httpd mysql mysql-server php php-mysql php-gd
#释放端口
EXPOSE 80/tcp
EXPOSE 3306/tcp
#设置启动
CMD ["/bin/bash","-c", "service httpd start && service mysqld start && tail -f /dev/null"]#生成镜像
[root@example demo02]# docker build -t lamp:v1.1 .
#运行镜像,查看功能
[root@example demo02]# docker run -it --rm lamp:v1.1 /bin/bash                
[root@66bddcc38330 /]#                                                        
[root@66bddcc38330 /]# php -v
PHP 5.4.16 (cli) (built: Apr  1 2020 04:07:17) 
Copyright (c) 1997-2013 The PHP Group
Zend Engine v2.4.0, Copyright (c) 1998-2013 Zend Technologies
[root@66bddcc38330 /]# exit
exit#上传到私有仓库
[root@example demo02]# docker login -u admin -p Harbor12345 192.168.163.143:80WARNING! Using --password via the CLI is insecure. Use --password-stdin.
WARNING! Your password will be stored unencrypted in /root/.docker/config.json.
Configure a credential helper to remove this warning. See
https://docs.docker.com/engine/reference/commandline/login/#credentials-storeLogin Succeeded
[root@example demo02]# docker tag lamp:v1.1 192.168.163.143:80/demo02/lamp:v1.1
[root@example demo02]# docker push 192.168.163.143:80/demo02/lamp:v1.1
The push refers to repository [192.168.163.143:80/demo02/lamp]
71836e35c11f: Pushed 
174f56854903: Pushed 
v1.1: digest: sha256:4dcda26c0d57bc6f7de11ddf983be80dc03162ed57da82b03a9c0d30d2d1ff5b size: 742

 

相关文章:

Dockerfile推送私有仓库的两个案例

一&#xff0c;编写Dockerfile制作Web应用系统nginx镜像&#xff0c;生成镜像nginx:v1.1&#xff0c;并推送其到私有仓库。 具体要求如下&#xff1a; &#xff08;1&#xff09;基于centos基础镜像&#xff1b; &#xff08;2&#xff09;指定作者信息&#xff1b; &#xff…...

【指标】指标公式大全,款款经典(建议珍藏)!-神奇指标网

三、指标源码&#xff1a; 1、连续三天高开高走的选股公式 count(o〉ref(c,1&#xff09;andc>o&#xff0c;3)3&#xff1b; 2、连续3天每天的最低价都比前一天高 count&#xff08;l〉ref(c,1&#xff09;,3)3&#xff1b; 3、周量缩小50%或40&#xff05;或n&#x…...

面试题目收集

Zset排行榜功能如何设计key&#xff1f; key就设计成排行榜的名字&#xff0c;比如下面插入或者更新数据 Long zadd(final String key, final double score, final String member) key : 排行榜的名字 memeber : 用户 score : 用户的分数 项目…...

创建R包-2.1:在RStudio中使用Rcpp制作R-Package(更新于2023.8.23)

目录 0-前言 1-在RStudio中创建R包项目 2-创建R包 2.1通过R函数创建新包 2.2在RStudio通过菜单来创建一个新包 2.3关于R包创建的说明 3-添加R自定义函数 4-添加C函数 0-前言 目标&#xff1a;在RStudio中创建一个R包&#xff0c;这个R包中包含C函数&#xff0c;接口是Rc…...

chatGPT如何解释泽众PerformanceRunner性能测试工具?

PerformanceRunner 是一个性能测试工具&#xff0c;可以帮助测试人员进行性能测试。它的主要功能包括&#xff1a; 1. 脚本录制和回放&#xff1a; PerformanceRunner可以录制 HTTP/HTTPS 通信协议的脚本&#xff0c;并能够回放模拟真实用户的行为。通过录制和回放&#xff0c…...

LA@向量组线性相关性

文章目录 向量组线性相关性线性相关线性无关多向量向量组线性相关单向量向量组的线性相关性单位向量向量组线性相关性双向量向量组的线性相关性双向量线性相关的几何意义三向量线性相关的几何意义包含零向量的向量组线性相关概念迁移:线性方程组和线性相关齐次线性方程组和向量…...

[k8s] 基于ubuntu22部署k8s1.28记录

k8s1.28部署已经不依赖docker了&#xff0c;所以不需要安装docker。同理&#xff1a;如果想查看镜像和运行容器&#xff0c;也不能用docker命令去查询了&#xff1a;需要使用crictl。不过crictl命令参数兼容docker&#xff0c;所以使用上手没有啥难度。 1. 配置安装源 根据k8…...

React 事件代理 和原生事件绑定混用:你的选择会导致什么问题?

在React开发中&#xff0c;事件处理是一个常见的任务。React提供了一个方便的事件系统&#xff0c;但有时我们可能会在React组件中与原生DOM事件一起使用。本文将讨论React的事件代理机制与原生事件绑定混用可能导致的一些问题。 React的事件代理 React采用了一种称为"事…...

使用阿里云国外和国内云服务器有什么注意事项?

使用阿里云的国外和国内云服务器时&#xff0c;有一些注意事项需要考虑&#xff1a; 地理位置&#xff1a;选择离你的用户或数据中心最近的地理位置&#xff0c;可以减少延迟和提高访问速度。对于国内用户&#xff0c;使用国内云服务器可能更好&#xff1b;对于国外用户&#…...

【计算机网络】【常考问题总结】

1. ping 127.0.0.1 后会发生什么&#xff1f; ping 127.0.0.1 &#xff1b;ping 0.0.0.0 &#xff1b; ping localhost 面试官问&#xff1a;断网了&#xff0c;还能ping通 127.0.0.1 吗&#xff1f;为什么&#xff1f;_kevin_tech的博客-CSDN博客 2. MTU&#xff0c;MMU是…...

前端基础(props emit slot 父子组件间通信)

前言&#xff1a;如何实现组件的灵活使用&#xff0c;今天学习组件封装用到的props、slot和emit。 目录 props 子组件 父组件 示例代码 slot 示例代码 作用域插槽 emit 示例代码 props 需要实现在其他组件中使用同一个子组件。 子组件 子组件&#xff08;所谓子组件…...

即时通讯:短轮询、长轮询、SSE 和 WebSocket 间的区别

在现代 Web 开发中&#xff0c;即时通讯已经成为许多应用程序的重要组成部分。为了实现即时通讯&#xff0c;开发人员通常使用不同的技术和协议。本文将介绍四种常见的即时通讯实现方法&#xff1a;短轮询、长轮询、SSE&#xff08;服务器发送事件&#xff09;和 WebSocket&…...

高忆管理:药店零售概念回落,开开实业走低,此前7日大涨超80%

药店零售概念18日盘中大幅下挫&#xff0c;到发稿&#xff0c;华人健康跌逾11%&#xff0c;漱玉布衣、塞力医疗跌超9%&#xff0c;重药控股、浙江震元、榜首医药等跌超7%&#xff0c;药易购跌超6%&#xff0c;开开实业跌超3%。 值得注意的是&#xff0c;开开实业此前7个交易日斩…...

Go1.19 排序算法设计实践 经典排序算法对比

详解经典排序算法 01 为什么要学习数据结构与算法 抖音直播排行榜功能 案例 规则&#xff1a;某个时间段内&#xff0c;直播间礼物数TOP10房间获得奖励&#xff0c;需要在每个房间展示排行榜解决方案 •礼物数量存储在Redis-zset中&#xff0c;使用skiplist使得元素整体有序 •…...

3:Ubuntu上配置QT交叉编译环境并编译QT程序到Jetson Orin Nano(ARM)

1.Ubuntu Qt 配置交叉编译环境 1.1 ubuntu 20.04安装Qt sudo apt-get install qtcreator 1.2 配置QT GCC配置同上 最后配置Kits 上面设置完成之后 &#xff0c;设置Kits 中的Device(这是为了能够直接把项目部署到arm设备上) 点击NEXT之后会出现连接被拒绝&#xff0c;不用担…...

CentOS下MySQL的彻底卸载的几种方法

这里我为大家详细讲解下“CentOS下MySQL的彻底卸载的几种方法”的完整攻略。 前言 先通过下列命令找到需要删除的相关文件 rpm -qa mysql* whereis mysql find / -name mysql 需要上传的命令介绍 删除 MySQL 数据目录 rm -rf /var/lib/mysql 删除配置文件 rm -rf /etc/my.cnf…...

Spring 的异常处理机制

Spring 的异常处理机制 ​ 在Spring中&#xff0c;异常处理是一个非常重要的方面&#xff0c;用于捕获和处理应用程序中可能出现的异常情况。Spring提供了多种方式来处理异常。 ​ 使用Spring的异常处理机制主要有以下优点&#xff1a; ​ **统一的异常处理&#xff1a;**通…...

java八股文面试[JVM]——JVM参数

参考&#xff1a;JVM学习笔记&#xff08;一&#xff09;_卷心菜不卷Iris的博客-CSDN博客 堆参数调优入门 jdk1.7&#xff1a; jdk1.8&#xff1a; 面试题&#xff1a;给定-Xms Xmx -Xmn 问 最大的eden区域是多少M。 常用JVM参数 怎么对jvm进行调优&#xff1f;通过参数配…...

面试热题(复原ip地址)

有效 IP 地址 正好由四个整数&#xff08;每个整数位于 0 到 255 之间组成&#xff0c;且不能含有前导 0&#xff09;&#xff0c;整数之间用 . 分隔。 例如&#xff1a;"0.1.2.201" 和 "192.168.1.1" 是 有效 IP 地址&#xff0c;但是 "0.011.255.24…...

【JavaSE】Java方法的使用

【本节目标】 1. 掌握方法的定义以及使用 2. 掌握方法传参 3. 掌握方法重载 4. 掌握递归 目录 1.方法概念及使用 1.1什么是方法(method) 1.2 方法定义 1.3 方法调用的执行过程 1.4 实参和形参的关系 2. 方法重载 2.1 为什么需要方法重载 2.2 方法重载概念 3. 递归 3.…...

python打卡day49

知识点回顾&#xff1a; 通道注意力模块复习空间注意力模块CBAM的定义 作业&#xff1a;尝试对今天的模型检查参数数目&#xff0c;并用tensorboard查看训练过程 import torch import torch.nn as nn# 定义通道注意力 class ChannelAttention(nn.Module):def __init__(self,…...

Auto-Coder使用GPT-4o完成:在用TabPFN这个模型构建一个预测未来3天涨跌的分类任务

通过akshare库&#xff0c;获取股票数据&#xff0c;并生成TabPFN这个模型 可以识别、处理的格式&#xff0c;写一个完整的预处理示例&#xff0c;并构建一个预测未来 3 天股价涨跌的分类任务 用TabPFN这个模型构建一个预测未来 3 天股价涨跌的分类任务&#xff0c;进行预测并输…...

Python实现prophet 理论及参数优化

文章目录 Prophet理论及模型参数介绍Python代码完整实现prophet 添加外部数据进行模型优化 之前初步学习prophet的时候&#xff0c;写过一篇简单实现&#xff0c;后期随着对该模型的深入研究&#xff0c;本次记录涉及到prophet 的公式以及参数调优&#xff0c;从公式可以更直观…...

Java 加密常用的各种算法及其选择

在数字化时代&#xff0c;数据安全至关重要&#xff0c;Java 作为广泛应用的编程语言&#xff0c;提供了丰富的加密算法来保障数据的保密性、完整性和真实性。了解这些常用加密算法及其适用场景&#xff0c;有助于开发者在不同的业务需求中做出正确的选择。​ 一、对称加密算法…...

智能仓储的未来:自动化、AI与数据分析如何重塑物流中心

当仓库学会“思考”&#xff0c;物流的终极形态正在诞生 想象这样的场景&#xff1a; 凌晨3点&#xff0c;某物流中心灯火通明却空无一人。AGV机器人集群根据实时订单动态规划路径&#xff1b;AI视觉系统在0.1秒内扫描包裹信息&#xff1b;数字孪生平台正模拟次日峰值流量压力…...

聊一聊接口测试的意义有哪些?

目录 一、隔离性 & 早期测试 二、保障系统集成质量 三、验证业务逻辑的核心层 四、提升测试效率与覆盖度 五、系统稳定性的守护者 六、驱动团队协作与契约管理 七、性能与扩展性的前置评估 八、持续交付的核心支撑 接口测试的意义可以从四个维度展开&#xff0c;首…...

mysql已经安装,但是通过rpm -q 没有找mysql相关的已安装包

文章目录 现象&#xff1a;mysql已经安装&#xff0c;但是通过rpm -q 没有找mysql相关的已安装包遇到 rpm 命令找不到已经安装的 MySQL 包时&#xff0c;可能是因为以下几个原因&#xff1a;1.MySQL 不是通过 RPM 包安装的2.RPM 数据库损坏3.使用了不同的包名或路径4.使用其他包…...

Swagger和OpenApi的前世今生

Swagger与OpenAPI的关系演进是API标准化进程中的重要篇章&#xff0c;二者共同塑造了现代RESTful API的开发范式。 本期就扒一扒其技术演进的关键节点与核心逻辑&#xff1a; &#x1f504; 一、起源与初创期&#xff1a;Swagger的诞生&#xff08;2010-2014&#xff09; 核心…...

使用Spring AI和MCP协议构建图片搜索服务

目录 使用Spring AI和MCP协议构建图片搜索服务 引言 技术栈概览 项目架构设计 架构图 服务端开发 1. 创建Spring Boot项目 2. 实现图片搜索工具 3. 配置传输模式 Stdio模式&#xff08;本地调用&#xff09; SSE模式&#xff08;远程调用&#xff09; 4. 注册工具提…...

免费PDF转图片工具

免费PDF转图片工具 一款简单易用的PDF转图片工具&#xff0c;可以将PDF文件快速转换为高质量PNG图片。无需安装复杂的软件&#xff0c;也不需要在线上传文件&#xff0c;保护您的隐私。 工具截图 主要特点 &#x1f680; 快速转换&#xff1a;本地转换&#xff0c;无需等待上…...