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

Dockerfile制作镜像与搭建LAMP环境

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

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

1.编写Dockerfile

我们应该尽量的在一个空目录里

#基于centsos
FROM centos:7
#指定信息
MAINTAINER "w<15023223591@163.com>"
#安装Nginx
ADD http://nginx.org/download/nginx-1.22.1.tar.gz /usr/local/src
#默认主页
COPY dest /usr/share/nginx/
#暴露端口
EXPOSE 80
#启动nginx
CMD ["/usr/sbin/nginx", "-g", "daemon off;"]

 dest文件

2.构建镜像

docker build -t w-nginx:v1.1 ./
  • docker build`:这是 Docker 构建镜像的命令。
  • `-t w-nginx:v1.1`:此选项用于为镜像指定名称和标签。
  • `./`:此选项指定 Dockerfile 的位置。`.` 表示当前目录。Docker 将在此目录下查找名为 `Dockerfile` 的文件。

3.登录harbor

 4.给镜像打标签

docker tag w-nginx:v1.1 192.168.227.137/test/w-nginx:v1.1

 5.推送镜像

 docker push 192.168.227.137/test/w-nginx:v1.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)验证镜像。 

1.由于centos6已经下线,所有我们要跟换centos-vault源!

wget -O CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-vault-6.10.repo

2.编写Dockerfile

#基于centos6
FROM centos:6
#指定作者信息
MAINTAINER "w <15023223591@163.com>"
#将新的yum源复制到centos中
COPY CentOS-Base.repo /etc/yum.repos.d/
#安装软件
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"]

3.构建镜像

docker build -t w-lamp:v1.1 ./

 4.验证镜像

 5.给镜像打上标签

docker tag w-lamp:v1.1 192.168.227.137/test/w-lamp:v1.1

6.推送镜像 

 

 

相关文章:

Dockerfile制作镜像与搭建LAMP环境

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

Linux系统中查看端口的方法

一、使用netstat命令 netstat命令是一种非常实用的命令&#xff0c;可以用来显示网络连接、路由表、网络接口和网络统计信息等。它还可以用来显示系统中正在监听的端口。要查看端口&#xff0c;只需在终端中输入以下命令&#xff1a; netstat -tuln 这个命令的意思是列出所有…...

java mysql传入string数组返回string数组的简单写法

一、前言 最近有个需求&#xff0c;需要一个传入string数组返回string数组的sql逻辑。 懒得封装成javabean了&#xff0c;于是就写了一个简单的样例&#xff0c;总结下。 二、代码 1.mapper.java&#xff0c;可以这样写&#xff1a; public interface MyMapper {String[] …...

【PHP】PHP基本语法

1、PHP标记 当解析一个文件时&#xff0c;PHP 会寻找起始和结束标记&#xff0c;也就是 <?php 和 ?>&#xff0c;告诉 PHP 开始和停止解析二者之间的代码。此种解析方式使得 PHP 可以被嵌入到各种不同的文档中去&#xff0c;而任何起始和结束标记之外的部分都会被 PHP…...

SystemVerilog interface详细介绍

1. Interface概念 System Verilog中引入了接口定义&#xff0c;接口与module 等价的定义&#xff0c;是要在其他的接口、module中直接定义&#xff0c;不能写在块语句中&#xff0c;跟class是不同的。接口是将一组线捆绑起来&#xff0c;可以将接口传递给module。 2. 接口的优…...

计网第四章(网络层)(三)

IPV4地址的应用规划&#xff1a; 定长的子网掩码FLSM&#xff1a; 使用同一个子网掩码划分子网&#xff0c;每个子网所分配的IP地址数量相同&#xff0c;造成IP地址的浪费。 变长的子网掩码VLSM&#xff1a; 使用不同的子网掩码划分子网&#xff0c;每个子网所分配的IP地址…...

python学习1之安装

前言 目前&#xff0c;Python有两个版本&#xff0c;一个是2.x版&#xff0c;一个是3.x版&#xff0c;这两个版本是不兼容的。由于3.x版越来越普及&#xff0c;我们的教程将以最新的Python 3.9版本为基础。 1、下载 官网地址 https://www.python.org/downloads/ 2、安装 点击…...

Autofac在WebApi,Winform中应用

安装注意事项 使用AOP的时候需要安装Autofac.Extras.DynamicProxy,如果发现VS老是提示报错,需要把VS重启下才可以识别。 WebApi 注意事项:WebApi中多一个ApiController中构造注入功能。 注入和AOP拦截 var siteNameList ClassHelper.GetConstants(typeof(SiteName));//创建…...

uview ui 查看版号

版本查询2种方式 有两种方式可以查询到正在使用的uView的版本&#xff1a; // 通过console.log打印的形式 console.log(uni.$u.config.v);// 可以查阅uView的配置文件得知当前版本号&#xff0c;具体位置为&#xff1a; /uview-ui/libs/config/config.js...

Python 爬虫网页图片下载到本地

您可以使用Python的requests库来获取网页的源码&#xff0c;使用BeautifulSoup库来解析HTML&#xff0c;并使用urllib库来下载图片到本地。下面是一个示例代码&#xff1a; import requests from bs4 import BeautifulSoup import urllib # 获取网页源码 url https://examp…...

PyQt open3d 加载 显示点云

PyQt加载 显示点云&#xff0c;已经有三种方式&#xff0c;使用 open3d; 使用 vtk; 使用 pcl; 下面是使用 open3d: import sys import open3d as o3d import numpy as np import pyqtgraph.opengl as gl from PyQt5.QtWidgets import QApplication, QVBoxLayout, QWidget, QFi…...

Linux搭建SSLVpn

安装http、ssl服务 编辑http配置文件 修改http的136行&#xff0c;276行以及990行 1、136行将监听端口注释 2、276行和990行修改为自己的域名和要访问的端口 修改http文档最后那部分 新添ssl配置信息&#xff0c;将端口修改为443&#xff08;截图错了server.key应该放在/etc/…...

Qt5升级到Qt6分步迁移教程

Qt框架的一个新的长期支持版本6.5最近发布。它为以前的版本引入了许多修复、改进和新功能。有些可能对您的应用程序有用&#xff08;如果不是现在&#xff0c;可能会在将来&#xff09;&#xff0c;因此最好将应用程序迁移到最新版本的框架。 仍然有许多应用程序仍在使用Qt 5&…...

多线程学习之线程池

线程状态 线程状态具体含义NEW一个尚未启动的线程的状态。也称之为初始、开始状态。线程刚被创建&#xff0c;但是并未启动。还没调用start方法。MyThread t new MyThread()只有线程对象&#xff0c;没有线程特征。RUNNABLE当我们调用线程对象的start方法&#xff0c;那么此时…...

Elasticsearch基础

1、简介 Elasticsearch是实时的分布式搜索分析引擎&#xff0c;内部使用Lucene做索引与搜索。 何谓实时&#xff1f;新增到 ES 中的数据在1秒后就可以被检索到&#xff0c;这种新增数据对搜索的可见性称为“准实时搜索”。分布式意味着可以动态调整集群规模&#xff0c;弹性扩…...

论文阅读:Model-Agnostic Meta-Learning for Fast Adaptation of Deep Networks

前言 要弄清MAML怎么做&#xff0c;为什么这么做&#xff0c;就要看懂这两张图。先说MAML**在做什么&#xff1f;**它是打着Mate-Learing的旗号干的是few-shot multi-task Learning的事情。具体而言就是想训练一个模型能够使用很少的新样本&#xff0c;快速适应新的任务。 定…...

基于Web的旅游推荐网站设计与实现(论文+源码)_kaic

【摘 要】 当前&#xff0c;众所周知的旅游产业已慢慢成为全世界经济领域中最具代表影响力和最大领域的产业之一&#xff0c;互联网的蓬勃发展也为旅游业带来了新的机遇。并且旅游网站已经逐渐成为管理旅游信息的主要模式。因此&#xff0c;开发一个稳定性良好、可用性强的旅游…...

继承AndroidView Model的错误

ViewModelProvider(this)[RegisterViewModel::class.java] 一行简单的代码&#xff0c;总是报这个错误 Caused by: java.lang.NoSuchMethodException: com.xinfa.registerlogin.viewmodel.LoginViewModel. [class android.app.Application] 经过一下午的思索&#xff0c;终于找…...

智慧互联,有序充电--多场景充电

企业微电网能效及充电管理解决方案 安科瑞 崔丽洁 1、企业需求&#xff08;目的地充电&#xff09; 站在企业的角度&#xff0c;除了要主动承担碳达峰、碳中和的社会责任&#xff0c;也需要考虑自身的经营和利润&#xff0c;需要结合企业的现状进行改造 企业微电网平台——与…...

yum install libreoffice‘ returned a non-zero

The command ‘/bin/sh -c yum install libreoffice’ returned a non-zero code: 1 1. 异常信息 Is this ok [y/d/N]: Exiting on user command Your transaction was saved, rerun it with:yum load-transaction /tmp/yum_save_tx.2023-08-28.13-42.EftXfl.yumtx The comman…...

3分钟搞定Windows软件安装难题:winget-install终极解决方案

3分钟搞定Windows软件安装难题&#xff1a;winget-install终极解决方案 【免费下载链接】winget-install Install WinGet using PowerShell! Prerequisites automatically installed. Works on Windows 10/11 and Server 2019/2022. 项目地址: https://gitcode.com/gh_mirror…...

实时信号处理中的滤波器选型实战指南:从需求分析到性能优化

实时信号处理中的滤波器选型实战指南&#xff1a;从需求分析到性能优化 【免费下载链接】gnuradio GNU Radio – the Free and Open Software Radio Ecosystem 项目地址: https://gitcode.com/gh_mirrors/gn/gnuradio 一、需求分析&#xff1a;明确滤波器设计目标 在开…...

3大核心功能解放明日方舟玩家双手:MAA自动化助手全攻略

3大核心功能解放明日方舟玩家双手&#xff1a;MAA自动化助手全攻略 【免费下载链接】MaaAssistantArknights 《明日方舟》小助手&#xff0c;全日常一键长草&#xff01;| A one-click tool for the daily tasks of Arknights, supporting all clients. 项目地址: https://gi…...

ESP8266天气时钟DIY全攻略:从零搭建到个性化定制

1. 硬件准备与成本控制 作为一个玩了多年智能硬件的爱好者&#xff0c;我强烈推荐从ESP8266开始入门物联网项目。这款芯片的价格实在太香了&#xff0c;9块钱就能买到NodeMCU开发板&#xff0c;性能却足够应付大多数DIY场景。我去年做过统计&#xff0c;用ESP8266搭建的天气时钟…...

从LFA到TI-LFA:一张图看懂华为IGP FRR技术演进与选型指南

从LFA到TI-LFA&#xff1a;华为IGP FRR技术全景解析与实战选型 当视频会议因网络抖动出现卡顿时&#xff0c;当金融交易因路由收敛延迟导致订单丢失时&#xff0c;网络工程师们开始意识到&#xff1a;传统的IGP收敛机制已无法满足现代业务对可靠性的苛刻要求。这背后是毫秒级故…...

5分钟掌握SQLite在线查看器:浏览器中的数据库管理革命

5分钟掌握SQLite在线查看器&#xff1a;浏览器中的数据库管理革命 【免费下载链接】sqlite-viewer View SQLite file online 项目地址: https://gitcode.com/gh_mirrors/sq/sqlite-viewer 在数据驱动的时代&#xff0c;SQLite数据库无处不在——从移动应用到嵌入式设备&…...

QT 5.14.0实战:手把手教你用QLineEdit打造一个带验证码的登录框(附完整样式代码)

QT 5.14.0实战&#xff1a;手把手教你用QLineEdit打造一个带验证码的登录框&#xff08;附完整样式代码&#xff09; 在GUI开发中&#xff0c;登录界面是最基础也最考验细节的组件之一。一个优秀的登录框不仅需要功能完整&#xff0c;还要在用户体验上下足功夫——比如实时输入…...

国密双证书体系深度解读:为什么你的GMTLS客户端需要两个证书?从ECC到ECDHE模式全解析

国密双证书体系深度解析&#xff1a;从设计哲学到工程实践 当开发者第一次接触国密GMTLS协议时&#xff0c;最令人困惑的莫过于那个看似"多余"的第二个证书。为什么在标准TLS中运行良好的单证书体系&#xff0c;到了国密环境中就需要拆分成加密证书和签名证书&#x…...

我的杭州亲子旅游线路总结(坐船版)

我的杭州亲子旅游线路总结&#xff08;坐船版&#xff09; 这是我带娃走过的线路。孩子最近迷恋坐船&#xff0c;我看到新闻说梅花碑有公交船&#xff0c;而且梅花开了很漂亮&#xff0c;就去看看。 这里记录一下行程&#xff0c;说不定以后还去&#xff0c;能做参考。 文中提及…...

从Java到AI Agent:传统后端工程师的下一站,不是学AI,是成为系统工程师!

文章探讨了在AI技术发展的背景下&#xff0c;传统后端工程师的转型方向。作者认为&#xff0c;未来的竞争焦点不再是单纯的技术能力&#xff0c;而是如何将AI技术融入现有系统&#xff0c;构建自动化系统。文章提出了AI Agent工程师的概念&#xff0c;强调系统工程能力的重要性…...