Docker容器学习:Dockerfile制作Web应用系统nginx镜像

news2024/11/17 11:21:25

目录

编写Dockerfile

1.文件内容需求:

2.编写Dockerfile:

3.开始构建镜像

 4.现在我们运行一个容器,查看我们的网页是否可访问

推送镜像到私有仓库

1.把要上传的镜像打上合适的标签

2.登录harbor仓库

3.上传镜像


编写Dockerfile

1.文件内容需求:

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

2.编写Dockerfile:

[root@node4 web]# pwd
/dockerfile/web
[root@node4 web]# ll
total 8
-rw-r--r-- 1 root root 362 Aug 20 23:23 Dockerfile
-rw-r--r-- 1 root root  36 Aug 20 22:55 index.html

[root@node4 web]# more index.html 
This is a nginx test for Dockerfile

[root@node4 web]# more Dockerfile 
# 基于centos:7基础镜像
FROM centos:7

# 指定作者信息
MAINTAINER "Xcgouge <xcgouge@163.com>"

# 安装nginx
RUN yum -y update && \
    yum -y install epel-release && \
    yum -y install nginx && \
    yum clean all

# 默认主页
COPY index.html /usr/share/nginx/html/

# 暴露端口
EXPOSE 80

# 原神 启动!
CMD ["nginx","-g","daemon off;"]

3.开始构建镜像

[root@node4 web]# docker build -t zly-nginx:v1.1 ./

查看构建结果

[root@node4 web]# docker images | grep zly-nginx
zly-nginx                       v1.1      00e97313c118   29 minutes ago      397MB

 4.现在我们运行一个容器,查看我们的网页是否可访问

[root@node4 web]# docker run --name web -d -p 81:80 zly-nginx:v1.1
783c2c4f17fc9cd48fca5e3bfcdc621385799da7378c1d3779f9b764e77b01f7

浏览器访问

推送镜像到私有仓库

上一篇文章提到如何搭建自己的私有仓库harbor:Docker容器学习:搭建私有镜像仓库Harbor&操作_一路喝狗狗的博客-CSDN博客

1.把要上传的镜像打上合适的标签

[root@node4 web]# docker tag zly-nginx:v1.1 docker:80/demo/zly-nginx:v1.1
 

注意docker:80/demo/是指定harbor仓库的地址,docker:80是你的镜像仓库地址,/demo/zly-nginx是你想要创建的镜像仓库中的项目和镜像名称(路径),v1.1是新的标签。

2.登录harbor仓库

[root@node4 harbor]# docker login docker:80
Username (admin): admin
Password:
Login Succeeded

3.上传镜像

[root@node4 web]# docker push docker:80/demo/zly-nginx:v1.1 

 

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

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

相关文章

[机缘参悟-102] :IT人 - 管理的本质?管理人与从事技术的本质区别?人性、冰山模型、需求层次模型

感悟&#xff1a; 管理的本质是&#xff1a;学习各种管理理论、方法、技能&#xff0c;克服自身的人性缺点、预防他人人性的恶点、利用他人的人性特点拿到结果&#xff0c;从而完成组织、管理者的上司、管理者自身、管理者下属的目标。管理中的问题&#xff0c;80%以上都人性问…

基于实例的学习方法

基于实例的学习方法 动机基本概念基于实例的学习基于实例的概念表示 1. 最近邻最近邻的例子理论结果最近邻&#xff08;1- NN&#xff09;:解释问题 K-近邻(KNN)KNN讨论1 &#xff1a;距离度量KNN 讨论2&#xff1a;属性KNN:属性归一化KNN:属性加权 KNN讨论3:连续取值目标函数K…

数据结构(Java实现)LinkedList与链表(上)

链表 逻辑结构 无头单向非循环链表&#xff1a;结构简单&#xff0c;一般不会单独用来存数据。实际中更多是作为其他数据结构的子结构&#xff0c;如哈希桶、图的邻接表等等。 无头双向链表&#xff1a;在Java的集合框架库中LinkedList底层实现就是无头双向循环链表。 链表的…

Stylet框架

Stylet框架 编辑时间:2023/8/25 1.Stylet简介 Stylet是一个小巧但功能强大的MVVM框架&#xff0c;灵感来自Caliburn.Micro。其目的是进一步降低复杂性和魔力&#xff08;译者注&#xff1a;Caliburn.Micro有很多让人抓狂的约定&#xff0c;看起来像魔法&#xff0c;这对新手…

项目进度管理(4-2)关键链法和关键路径法的区别和联系

1 关键链法和关键路径法的主要区别 1.1 关键链法和关键路径法的关注焦点不同 关键路径法&#xff08;CPM&#xff09;&#xff1a;关注项目中最长的路径&#xff0c;也就是所需时间最长的路径&#xff0c;这被称为关键路径。关键路径决定了项目的最早完成时间。关键链法&…

Jetbrains IDE新UI设置前进/后退导航键

背景 2023年6月&#xff0c;Jetbrains在新发布的IDE&#xff08;Idea、PyCharm等&#xff09;中开放了新UI选项&#xff0c;我们勾选后重启IDE&#xff0c;便可以使用这一魔性的UI界面了。 但是前进/后退这对常用的导航键却找不到了&#xff0c;以前的设置方式&#xff08;Vi…

【2022年电赛】有人开摆,有人跑路,有人5秒不识数

前言&#xff1a;该作品是2022年四川省电子设计竞赛一等奖作品&#xff0c;其能稳定完成全部四个问题&#xff0c;但存在停车距离的精度问题。该文章将会介绍该作品的整体设计思路&#xff0c;关键控制算法等技术相关问题&#xff0c;也会给出工程的下载链接。同时本人参加过20…

考研408 | 【操作系统】 内存管理

内存的基础 内存和内存的作用&#xff1a; 几个常用的数量单位&#xff1a; 指令的工作原理&#xff1a; 问题&#xff1a;如何将指令中的逻辑地址转换为物理地址&#xff1f; 解决办法&#xff1a;装入的三种方式 1.绝对装入 2.可重定位装入 3.动态重定位 从写程序到程…

分布式事务篇-2.2 Seata存储模式,配置模式,注册模式

文章目录 前言一、存储模式:1.1 存储模式的作用&#xff1a;1.2 File 存储模式&#xff1a;1.2.1 映射数据存储文件&#xff1a;1.2.3 file存储优缺点&#xff1a; 1.3 db 存储模式&#xff1a;1.3.1 application.yml 配置db 信息&#xff1a;1.3.1 拷贝驱动jar&#xff1a;1.3…

实验室信息化建设都包括哪些方面?

在现代的计算机通信系统、信息安全系统和自动控制等系统中&#xff0c;软件开发工作占了相当大的比重&#xff0c;而与这些系统有关的软件一般十分庞大&#xff0c;也相当复杂。这些软件还要大量地与操作系统核作深层次的交互&#xff0c;以进行信息的传输、控制和实现各种通信…

#systemverilog# 之 event region 和 timeslot 仿真调度(六)疑惑寄存器采样吗

一 象征性啰嗦 想必大家在刚开始尝试写Verilig HDL代码的时候,都是参考一些列参考代码,有些来自于参考书,有些来自于网上大牛的笔记,甚至有写来自于某宝FPGA开发板的授权代码。我还记得自己当时第一次写代码,参考的是一款Altera 芯片,结合Quartus 开发软件, 在上面练习…

线程池也就那么一回事嘛!

线程池详讲 一、线程池的概述二、线程池三、自定义线程池四、线程池工作流程图五、线程池应用场景 一、线程池的概述 线程池其实就是一种多线程处理形式&#xff0c;处理过程中可以将任务添加到队列中&#xff0c;然后在创建线程后自动启动这些任务。这里的线程就是我们前面学过…

算法笔记:KD树

1 引入原因 K近邻算法需要在整个数据集中搜索和测试数据x最近的k个点&#xff0c;如果一一计算&#xff0c;然后再排序&#xff0c;开销过大 引入KD树的作用就是对KNN搜索和排序的耗时进行改进 2 KD树 2.1 主体思路 以空间换时间&#xff0c;利用训练样本集中的样本点&…

OSPF配置与协议分析

一、实验目的&#xff1a; 通过该实验学习OSPFv2协议&#xff0c;能够通过GNS3模拟环境并用wireshark抓包分析OSPFv2协议的报文格式 二、预备知识&#xff1a; OSPF(Open Shortest Path First&#xff0c;开放式最短路径优先&#xff09;是一个链路状态路由协议&#xff0c;被各…

智能引领物流,AGV与工控机完美搭配!

AGV小车现已广泛被制造业使用&#xff0c;成为智能工厂、智能车间的重要组成部分。在制造业的生产中用AGV小车代替工进行装载、搬运、卸载等工作&#xff0c;实现了车间物流的自动化&#xff0c;极大的提高了生产自动化水平。通过AGV小车与产线进行完美结合&#xff0c;可自动化…

如何理解原假设和备择假设?

原假设H0&#xff1a;一般是想要推翻的结论&#xff0c;如指标没有变化&#xff0c;实验组和对照组的该结果指标没有差异等。 备择假设H1&#xff1a;一般是想要证明的结论&#xff0c;如实验组的指标是显著提升的&#xff0c;指标提升10%等。 反证法的思想&#xff1a;因为假…

到目前为止,所有的关于安卓14的详细介绍

安卓14现在可能已经不远了,谷歌已经进行了五次测试,通常10月份的发布窗口时间很快就会到来。但除了在谷歌I/O 2023上进行简短讨论外,谷歌对正在发生的变化相对沉默。 可以肯定地说,Android 14不会是操作系统有史以来最大的一系列变化,但有很多改进和变化可以让Android保持…

Python Requests模块session的使用建议

本篇主要讲解Python Requests模块session的使用建议及整个会话中的所有cookie的方法。 测试代码 服务端&#xff1a;下面是用flask做的一个服务端&#xff0c;用来设置cookie以及打印请求时的请求头。 # -*- coding: utf-8 -*- from flask import Flask, make_response, req…

容器的基本操作

docker中的容器就是一个轻量级的虚拟机&#xff0c;是镜像运行起来的一个状态&#xff0c;本文就先来看看容器的基本操作。 查看容器 查看容器 启动docker后&#xff0c;使用docker ps命令可以查看当前正在运行的容器&#xff1a; 查看所有容器 上面这条命令是查看当前正在…