编写Dockerfile制作自己的镜像并推送到私有仓库

news2024/11/22 16:40:19

说明:我将用到的私有仓库是Harbor,安装教程参考我的这一篇文章:

安装搭建私有仓库Harbor_Word_Smith_的博客-CSDN博客

一、案例1

1、要求

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

(1)基于centos基础镜像

(2)指定作者信息

(3)安装nginx服务,将提供的dest目录(提供默认主页index.html)传到镜像内,并将dest目录内的前端文件复制到nginx的工作目录

(4)暴露80端口

(5)设置服务自启动

(6)验证镜像

2、实现步骤

(1)编写Dockerfile文件

#创建index.html前端文件
[root@node2 demo01]# cat index.html 
welcome to demo01

#创建demo01目录用来创建Dockerfile
[root@node2 ~]# mkdir -p docker_demo/demo01
[root@node2 ~]# cd docker_demo/demo01/
[root@node2 demo01]# vim Dockerfile
#写入以下内容
FROM centos
MAINTAINER "benjm <benjm@163.com>"
ADD http://nginx.org/download/nginx-1.24.0.tar.gz /usr/local/src/
COPY index.html /usr/share/nginx/
EXPOSE 80
CMD ["/usr/sbin/nginx","-g","daemon off;"]

 Dockerfile内容如下

(2)构建镜像 

[root@node2 demo01]# docker build -t nginx:v1.1 ./

查看

 

(3) 推送到私有仓库

在harbor上创建项目demo01 

#首先登录到私有仓库
[root@node2 demo01]# docker login -u admin -p Harbor12345 192.168.198.200: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-store

Login Succeeded

#给镜像打上合适的标签
[root@node2 demo01]# docker tag nginx:v1.1 192.168.198.200:80/demo01/nginx:v1.1
[root@node2 demo01]# docker images | grep demo01
192.168.198.200:80/demo01/nginx   v1.1      b4887857b526   8 minutes ago   231MB

#推送镜像到私有仓库
[root@node2 demo01]# docker push 192.168.198.200:80/demo01/nginx:v1.1
The push refers to repository [192.168.198.200:80/demo01/nginx]
02dfab95c1be: Pushed 
74ddd0ec08fa: Pushed 
v1.1: digest: sha256:888ed81c26b452ff94686c7709f1a6b668aeb2f2f7f80e4225eb83257428a8a7 size: 736
[root@node2 demo01]#

 然后就能在harbor上看到推送的镜像了

 

二、案例2 

1、要求

编写Dockerfile快速搭建自己专属的LAMP环境,生成镜像lamp:v1.1,并推送到私有仓库。具体要求如下:

(1)基于centos:6基础镜像

(2)指定作者信息

(3)安装httpd、mysql、mysql-server、php、php-mysql、php-gd

(4)暴露80和3306端口

(5)设置服务自启动

(6)验证镜像

2、实现步骤

(1)编写Dockerfile文件

[root@node2 ~]# mkdir -p docker_demo/demo02
[root@node2 ~]# cd docker_demo/demo02
[root@node2 demo02]# vim Dockerfile
#写入以下内容
FROM centos:6
MAINTAINER "benjm <benjm@163.com>"
ENV WEB_DOC_ROOT="/data/web/html"
RUN yum install httpd mysql mysql-server php php-mysql php-gd -y
EXPOSE 80/tcp
EXPOSE 3306/tcp
CMD /bin/httpd -f -h ${WEB_DOC_ROOT}

 Dockerfile内容如下 

 

(2)构建镜像

[root@node2 demo02]# docker build -t lamp:v1.1 ./

查看

 

(3)推送到私有仓库

在harbot上创建项目demo02

#给镜像打上合适的标签
[root@node2 demo02]# docker tag lamp:v1.1 192.168.198.200:80/demo02/lamp:v1.1

#推送镜像到私有仓库
[root@node2 demo02]# docker push 192.168.198.200:80/demo02/lamp:v1.1
The push refers to repository [192.168.198.200:80/demo02/lamp]
74ddd0ec08fa: Mounted from demo01/nginx 
v1.1: digest: sha256:396c671a6ab30d329ec504736d1a5d37025360e98c68896c70f9ddfadc845eba size: 529
[root@node2 demo02]#

然后就能在harbor上看到推送的镜像了 

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Linux学习(一)虚拟机安装

1、简介 最近准备开始进行linux的学习&#xff0c;本文从头开始记录学习过程以及遇到困难处理办法&#xff0c;便于以后复习、指令复制等。 2、虚拟机安装 2.1 VMware虚拟机安装 安装包链接&#xff1a;ubuntu20.04 https://www.aliyundrive.com/s/ZN8kZFKvBRu 点击链接保存…

十一、Linux用户及用户组的权限信息如何查看?如何修改?什么是权限的数字序号?

目录&#xff1a; 1、认知权限信息 2、rwx&#xff1f; &#xff08;1&#xff09;总括&#xff1a; &#xff08;2&#xff09;r权限&#xff1a; &#xff08;3&#xff09;w权限&#xff1a; &#xff08;4&#xff09;x权限&#xff1a; 3、修改权限 &#xff08;1&a…

电脑提示找不到d3dcompiler_47.dll的解决方案

在电脑上玩游戏或许工作中是我日常生活中的一大乐趣。然而&#xff0c;最近我遇到了一个问题&#xff0c;让我对我的游戏还有我的工作软件体验感到非常沮丧。这个问题就是d3dcompiler_47.dll文件的丢失。当我尝试启动一个新的游戏时&#xff0c;一个错误提示窗口出现在我的屏幕…

操作系统经典互斥问题哲学家就餐问题

问题描述 由Dijkstra提出并解决的哲学家就餐问题是典型的同步问题。该问题描述的是五个哲学家共用一张圆桌&#xff0c;分别坐在周围的五张椅子上&#xff0c;在圆桌上有五个碗和五只筷子&#xff0c;他们的生活方式是交替的进行思考和进餐。平时&#xff0c;一个哲学家进行思考…

LeetCode 42题:接雨水

题目 给定 n 个非负整数表示每个宽度为 1 的柱子的高度图&#xff0c;计算按此排列的柱子&#xff0c;下雨之后能接多少雨水。 示例 1&#xff1a; 输入&#xff1a;height [0,1,0,2,1,0,1,3,2,1,2,1] 输出&#xff1a;6 解释&#xff1a;上面是由数组 [0,1,0,2,1,0,1,3,2,1,…

c#扩展方法的使用

扩展方法可以向现有类型“添加”方法&#xff0c;无需创建新的派生类型、重新编译或以其他方式修改原始类型&#xff0c;用起来很方便&#xff0c;下面是我写的例子&#xff0c;为string这个常用的类型添加一个showmes方法&#xff0c;以下是扩展方法的代码&#xff1a; public…

React+Typescript 状态管理

好 本文 我们来说说状态管理 也就是我们的 state 我们直接顺便写一个组件 参考代码如下 import * as React from "react";interface IProps {title: string,age: number }interface IState {count:number }export default class hello extends React.Component<I…

【LeetCode-中等题】49. 字母异位词分组

题目 题解一:排序哈希表 思路:由于互为字母异位词的两个字符串包含的字母相同&#xff0c;因此对两个字符串分别进行排序之后得到的字符串一定是相同的&#xff0c;故可以将排序之后的字符串作为哈希表的键。 核心api: //将字符串转换为字符数组char[] ch str.toCharArray();…

【力扣】84. 柱状图中最大的矩形 <模拟、双指针、单调栈>

目录 【力扣】84. 柱状图中最大的矩形题解暴力求解双指针单调栈 【力扣】84. 柱状图中最大的矩形 给定 n 个非负整数&#xff0c;用来表示柱状图中各个柱子的高度。每个柱子彼此相邻&#xff0c;且宽度为 1 。求在该柱状图中&#xff0c;能够勾勒出来的矩形的最大面积。 示例…

从一到无穷大 #11 Is mmap shit or not?

本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。 本作品 (李兆龙 博文, 由 李兆龙 创作)&#xff0c;由 李兆龙 确认&#xff0c;转载请注明版权。 文章目录 前言mmap原理madvise / mlock / msync放弃使用mmap的理由InfluxdbsinglestoreRocksDB…

链表之第三回

欢迎来到我的&#xff1a;世界 该文章收入栏目&#xff1a;链表 希望作者的文章对你有所帮助&#xff0c;有不足的地方还请指正&#xff0c;大家一起学习交流 ! 目录 前言第一题&#xff1a;判断是否为环形链表第二题&#xff1a;找到两条链表的相交点第三题&#xff1a;返回…

调整逻辑卷的大小

调整逻辑卷的大小 将名字为 vo 的逻辑卷的大小调整到 500MiB &#xff0c;确保文件系统的内容保持不变。 调整后的逻辑卷的大小范围 在 480MiB 到 520MiB 的范围内都是可以接受的。 lsblk lvresize -L 500M /dev/vg0/vo 4. 创建交换分区 向 serverb 添加一个额外的交换…

解决nginx的负载均衡下上传webshell的问题

目录 环境 问题 访问的ip会变动 执行命令的服务器未知 上传大文件损坏 深入内网 解决方案 环境 ps :现在已经拿下服务器了&#xff0c;要解决的是负载均衡问题, 以下是docker环境&#xff1a; 链接: https://pan.baidu.com/s/1cjMfyFbb50NuUtk6JNfXNQ?pwd1aqw 提…

HotSpot虚拟机之内存模型与线程安全

目录 一、线程内存模型 1. 内存模型 2. 内存模型操作 二、Happens-Before原则 三、Java线程 1. 线程实现方式 2. Java线程状态 四、Java线程安全 1. 线程安全程度 2. 锁优化 五、参考资料 一、线程内存模型 1. 内存模型 内存模型主要目的是定义共享变量的访问规则&…

iconfont的使用方法 | 踩过的坑

据 iconfont官网&#xff0c;其使用方法是 拷贝项目下面生成的fontclass代码&#xff0c;挑选相应图标并获取类名。 注意&#xff0c;这个fontclass代码是涵盖了你所有要使用的图标 起因&#xff1a;部分icont图标生效了&#xff0c;部分图标无效。 问题&#xff1a;fontclas…

邮件开发信技巧大公开!

特别是对外贸企业或者跨境电商企业来讲&#xff0c;写邮件开发信仍是一个常用的手。通过邮件开发信&#xff0c;企业可以很快地获得精准客户&#xff0c;同时扩展业务&#xff0c;进行营销活动。但是做过邮件群发的人可能都会遇到类似问题&#xff0c;比如邮件到达率低、邮件回…

Python框架【url_for 函数、重定向、响应内容、自定义响应、模板介绍、模板的使用、过滤器介绍、Jinja模板自带过滤器】(二)

&#x1f44f;作者简介&#xff1a;大家好&#xff0c;我是爱敲代码的小王&#xff0c;CSDN博客博主,Python小白 &#x1f4d5;系列专栏&#xff1a;python入门到实战、Python爬虫开发、Python办公自动化、Python数据分析、Python前后端开发 &#x1f4e7;如果文章知识点有错误…

大数据课程K3——Spark的常用案例

文章作者邮箱&#xff1a;yugongshiyesina.cn 地址&#xff1a;广东惠州 ▲ 本章节目的 ⚪ 掌握Spark的常用案例——WordCount&#xff1b; ⚪ 掌握Spark的常用案例——求平均值&#xff1b; ⚪ 掌握Spark的常用案例——求最大值和最小值&#xff1b; ⚪ 掌握…

​8th参考文献:[8]许少辉.乡村振兴战略下传统村落文化旅游设计[M]北京:中国建筑出版传媒,2022.

​&#xff18;th参考文献&#xff1a;&#xff3b;&#xff18;&#xff3d;许少辉&#xff0e;乡村振兴战略下传统村落文化旅游设计&#xff3b;&#xff2d;&#xff3d;北京&#xff1a;中国建筑出版传媒&#xff0c;&#xff12;&#xff10;&#xff12;&#xff12;&…