docker 部署项目的操作文档,安装nginx

目录

  • 1 部署环境检查
  • 2 相关知识点
    • 2.1 docker默认镜像存放地址
    • 2.2 docker 的镜像都是tar 包?
    • 2.3 Docker-compose 是直接使用镜像创建容器?
    • 2.4 Docker Compose down 就是将容器删除?
    • 2.5 删除,会删除挂载嘛
    • 2.6 DockerFile 和 docker compose 区别
  • 3 部署nginx

1 部署环境检查

1  是否安装docker 
2  是否安装docker-compose
3  docker默认镜像存放地址在/var/lib/docker 目录下,查看此目录下是否有足够的空间df -h 目录名   查看所在目录 挂载目录及使用情况
4  查看机器,生成数据的存储空间dh -h 
5  检查是否系统是否为x86系统内核,( 部署包内的 java8镜像,smb软件 只支持x86系统)uname -a		

2 相关知识点

2.1 docker默认镜像存放地址

在Linux系统上,Docker默认将镜像存储在/var/lib/docker目录下。这个目录包含了Docker的运行时数据,包括镜像、容器、卷等。

/var/lib/docker目录下,镜像的具体存放位置如下:

  • 镜像层(Image Layers):/var/lib/docker/image/overlay2目录下存放了镜像的各个层。
  • 镜像元数据(Image Metadata):/var/lib/docker/image/overlay2/repositories.json文件包含了镜像的元数据信息,如镜像的名称、标签等。

请注意,/var/lib/docker目录下的文件和目录属于Docker的运行时数据,对其进行修改或删除可能会导致Docker的不稳定或数据丢失。如果你需要备份或迁移Docker的镜像数据,建议使用Docker提供的相关命令或工具来操作。

此外,值得一提的是,Docker的存储驱动可以根据不同的配置进行更改,因此实际的镜像存放位置可能会因配置而异。但对于大多数默认安装的Docker环境来说,/var/lib/docker是默认的镜像存放地址。

2.2 docker 的镜像都是tar 包?

是的,Docker的镜像实际上是以tar包的形式存储的。每个Docker镜像都由多个层(layers)组成,这些层以文件系统的形式存储在Docker宿主机上。

每个镜像层都是一个只读的文件系统,它包含了文件和目录的快照。当你使用Docker构建镜像时,每一条指令都会创建一个新的镜像层。这种分层的结构使得镜像的构建和共享变得高效,因为多个镜像可以共享相同的层。

当你从Docker Hub或其他镜像仓库拉取镜像时,实际上是将这些镜像层以tar包的形式下载到本地。这些tar包会被Docker存储在宿主机的文件系统中,供后续的容器创建和运行使用。

你可以使用docker save命令将镜像保存为tar包,使用docker load命令将tar包加载为镜像。这些命令可以让你在不同的Docker环境之间备份、迁移和共享镜像。

总结起来,Docker镜像实际上是由多个层组成的,以tar包的形式存储在宿主机上。这种分层结构和使用tar包的方式使得Docker镜像的构建、共享和管理变得更加灵活和高效。

2.3 Docker-compose 是直接使用镜像创建容器?

是的,Docker Compose是一个用于定义和运行多容器Docker应用程序的工具。使用Docker Compose,你可以使用一个单独的YAML文件来定义多个容器、它们之间的关联关系以及其他配置选项。然后,通过运行docker-compose up命令,Docker Compose将根据定义的配置创建并启动所有的容器。

在Docker Compose配置文件中,你可以指定要使用的镜像名称、容器的名称、端口映射、环境变量、卷挂载等等。当你运行docker-compose up命令时,Docker Compose会自动下载所需的镜像(如果本地不存在)并创建相应的容器。

下面是一个简单的Docker Compose配置文件示例,用于创建一个包含PostgreSQL和Redis两个容器的应用程序:

version: '3'
services:db:image: postgresenvironment:POSTGRES_PASSWORD: mysecretpasswordredis:image: redis

在这个示例中,我们定义了两个服务(即容器):dbredisdb服务使用了postgres镜像,并设置了PostgreSQL的密码为mysecretpasswordredis服务使用了redis镜像。

要运行这个配置文件,你可以在包含该文件的目录中打开终端或命令提示符,并运行以下命令:

docker-compose up

Docker Compose将会根据配置文件创建并启动dbredis两个容器。你可以通过docker-compose ps命令来查看容器的状态。

总结来说,Docker Compose是通过配置文件来创建和管理多个容器的工具,它简化了多容器应用程序的部署和管理过程。

2.4 Docker Compose down 就是将容器删除?

是的,docker-compose down命令用于停止并删除由Docker Compose启动的容器。当你运行docker-compose down命令时,Docker Compose将会停止并删除在配置文件中定义的所有服务(容器),同时还会删除相关的网络和卷(如果有定义)。这个命令可以用来清理整个应用程序的运行环境。

需要注意的是,docker-compose down命令会删除容器及其相关资源,包括数据卷中的数据。如果你希望保留数据,可以使用docker-compose stop命令来停止容器,而不是使用docker-compose down命令。

确保在运行docker-compose down命令之前,你已经进入到包含docker-compose.yml文件的目录,并且已经安装并正确配置了Docker Compose。

2.5 删除,会删除挂载嘛

是的,当你使用docker-compose down命令删除容器时,它会删除与容器相关联的挂载卷(如果有定义)。挂载卷是将容器内的路径与宿主机上的路径进行关联,以便在容器重启或删除后保留数据。

如果你希望保留挂载卷中的数据,可以使用docker-compose down -v命令。这个命令会在删除容器的同时,也删除挂载卷。如果你想要保留挂载卷中的数据,可以备份或迁移挂载卷的数据到其他位置,然后再运行docker-compose down -v命令来删除容器和挂载卷。

需要注意的是,删除挂载卷会永久删除其中的数据,因此在执行删除操作之前,请确保备份了重要的数据。

yml  里面写了    volumes:- /home/docker/nginx/data:/web/   之后down  之后,宿主机里面的数据会删除嘛

如果你在docker-compose.yml文件中使用了以下的挂载卷定义:

volumes:- /home/docker/nginx/data:/web/

然后执行docker-compose down命令来删除容器,那么默认情况下,这个挂载卷/home/docker/nginx/data上的数据将会被保留在宿主机上。

docker-compose down命令默认会删除容器实例,但不会删除挂载卷。只有在使用docker-compose down -v命令时,才会删除与容器关联的挂载卷。

因此,如果你只执行了docker-compose down命令,宿主机上的数据将会保留在/home/docker/nginx/data目录中。如果你想要删除挂载卷以及宿主机上的数据,可以使用docker-compose down -v命令。在执行删除操作之前,请确保备份了重要的数据。

2.6 DockerFile 和 docker compose 区别

Dockerfile 和 Docker Compose 是 Docker 中两个不同的概念和工具,它们用于不同的目的。

Dockerfile 是一个文本文件,用于定义和构建 Docker 镜像。它包含了一系列的指令,用于描述如何构建一个 Docker 镜像的步骤,包括基础镜像选择、安装软件包、复制文件、设置环境变量等。通过 Dockerfile,你可以自定义和管理你的镜像构建过程,以满足你的应用程序的需求。

Docker Compose 是一个工具,用于定义和管理多个 Docker 容器的应用程序。它使用一个 YAML 文件(通常称为 docker-compose.yml)来描述应用程序的不同服务、网络设置、卷挂载等配置。通过 Docker Compose,你可以定义一个多容器的应用程序,并使用一个命令来启动、停止、重启整个应用程序。它简化了多容器应用程序的部署和管理。

总结一下:

  • Dockerfile 用于构建 Docker 镜像,描述了如何构建一个镜像的步骤。
  • Docker Compose 用于定义和管理多个 Docker 容器的应用程序,描述了应用程序的不同服务和配置。

在实际使用中,你可以使用 Dockerfile 构建一个镜像,然后使用 Docker Compose 来定义和管理多个使用这个镜像的容器。这样可以方便地管理容器之间的关系、网络设置等,并实现整个应用程序的部署和管理。

3 部署nginx

将nginx 的 tar 包上传到服务器
在这里插入图片描述
在这里插入图片描述
输入docker images,发现目前是没有镜像的,现在将tar 包变成镜像

docker load -i   nginx.tar

在这里插入图片描述
以上就将tar 包变成镜像了

在这里插入图片描述
因为需要容器里面目录和宿主机目录要一一挂载,容器卷,所以我们在宿主机上面创建要和容器一一对应的目录

在这里插入图片描述
以上是ngixn 的目录,以后修改这个宿主机目录下的东西,nginx 容器里面就会修改。
这个conf 目录文件夹下,有一个nginx 配置

在这里插入图片描述
这个就是ngixn 的配置文件,以后我们就是修改这个配置文件

因为我们要使用 Docker-compose 去管理容器,所以要使用Docker-compose 的东西;

我们需要找一个位置,专门放各个yml 文件

在这里插入图片描述

现在有一个关于nginx 的yml 编排文件,就是使用他去管理

里面内容是:

version: "2"
services:nginx:image: nginxhostname: nginxcontainer_name: nginxports:- "18080:8080"- "18082:8081"- "18088:8087"volumes:- /home/docker/nginx/data:/web/- /home/docker/nginx/html:/usr/share/nginx/html- /home/docker/nginx/conf/nginx.conf:/etc/nginx/nginx.conf- /home/docker/nginx/logs:/var/log/nginx- /home/metefont/hongt-data-center/hkdata:/HKONG/hkdata- /home/metefont/mapdata:/home/metefont/mapdataenvironment:- TZ=Asia/Shanghai

这个文件是一个Docker Compose的配置文件,用于创建和管理一个Nginx容器。

让我逐行解释每一行代码的意思:

version: "2"

这是Docker Compose配置文件的版本号。在这个示例中,使用的是版本号为2的配置文件格式。

version: "2"
services:nginx:image: nginxhostname: nginxcontainer_name: nginxports:- "18080:8080"- "18082:8081"- "18088:8087"volumes:- /home/softinstall/docker/nginx/data:/web/- /home/softinstall/docker/nginx/html:/usr/share/nginx/html- /home/softinstall/docker/nginx/conf/nginx.conf:/etc/nginx/nginx.conf- /home/softinstall/docker/nginx/logs:/var/log/nginx- /home/metefont/hongt-data-center/hkdata:/HKONG/hkdata- /home/metefont/mapdata:/home/metefont/mapdataenvironment:- TZ=Asia/Shanghai

这部分定义了一个名为nginx的服务(即Nginx容器)。以下是每个配置项的含义:

  • image: nginx:指定使用的镜像为nginx,这将从Docker Hub上下载Nginx镜像。

  • hostname: nginx:设置容器的主机名为nginx

  • container_name: nginx:指定容器的名称为nginx

  • ports:定义端口映射,将主机的端口与容器的端口进行绑定。在这个示例中,将主机的18080端口映射到容器的8080端口,将主机的18082端口映射到容器的8081端口,将主机的18088端口映射到容器的8087端口。

  • volumes:定义卷挂载,将主机的目录与容器的目录进行映射。在这个示例中,将主机的/home/docker/nginx/data目录映射到容器的/web/目录,将主机的/home/docker/nginx/html目录映射到容器的/usr/share/nginx/html目录,将主机的/home/docker/nginx/conf/nginx.conf文件映射到容器的/etc/nginx/nginx.conf文件,将主机的/home/docker/nginx/logs目录映射到容器的/var/log/nginx目录,将主机的/home/metefont/hongt-data-center/hkdata目录映射到容器的/HKONG/hkdata目录,将主机的/home/metefont/mapdata目录映射到容器的/home/metefont/mapdata目录。

  • environment:设置环境变量。在这个示例中,设置时区为Asia/Shanghai

这个配置文件的作用是创建一个名为nginx的Nginx容器,并指定了端口映射、卷挂载和环境变量等配置。通过运行docker-compose up命令,Docker Compose将会根据这个配置文件创建并启动该容器。

在这个nginx.yml  文件夹下,执行下面就启动了
docker-compose -f nginx.yml up -d查看日志
docker logs -f nginx确保nginx.conf   没问题,才可以启动成功关闭容器
docker-compose -f nginx.yml down如果第一次启动失败,要修改完配置文件之后,关闭之后重新启动
先执行
docker-compose -f nginx.yml down
后执行
docker-compose -f nginx.yml up -d

在这里插入图片描述
进入容器内部:

docker  exec -it 容器id    /bin/bash

放一个图片,浏览器访问

在这里插入图片描述

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

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

相关文章

Visual Studio 新特性:对 include 指令进行智能诊断

今天,我们很高兴地宣布新功能:#include 语言智能诊断。 此功能自 Visual Studio 2022 v17.9 预览版2 中可用。通过此新功能,您可以获取到有关每个 include 的引用和生成时间的详细信息,从而更好地了解 #include 指令的行为。 &g…

git仓库操作之一:git仓库修改名称

1 先修改“Project name"方法如下: 2 再修改“下载地址和下载后的项目名称”方法如下: 这样就修改完成了。

PhpPythonC++圆类的实现(OOP)

哎......被投诉了 😭😭😭😭😭 其实也不是小编不更,这不是期末了吗(zhaojiekou~~),而且最近学的信息收集和ctf感觉好像没找到啥能更的(不过最经还是在考虑更一…

JAVA销售数据决策管理系统源码

JAVA销售数据决策管理系统源码 基于BS(Extjs Strus2springhibernate Mysql)的销售数据的决策支持 主要的功能有 系统功能具体内容包括基础资料、进货管理、出货管理、库存管理、决策分析、系统管理。

活水计划丨改善老年营养,促进老年健康

在中国乡村发展基金会、腾讯公益的支持下,1月10日上午辉县义工联合共济医院,在我市易地搬迁佳怡社区开展“乐伴银龄 社区共建”项目——“老年常见病健康知识讲座”活动。 通过制作宣传横幅、发放科普手册等方式,为协同推进健康中国和积极应对…

《AI基本原理和python实现》栏目介绍

一、说明 栏目《AI基本原理和python实现》的设计目的是为了实现相关算法的python编程。因为用python实现AI需对相关的python库进行全方位了解,本栏目基本包含了【机器学习】相关的经典算法,除此之外还包括了数据分析、时间序列等一些概念和相关python代码…

【SpringCloud Alibaba】Nacos Config配置管理与Gateway 网关

目录 一、Config 远程配置 1.1 config 介绍 1.2 bootstrap.yml 配置文件 二、Gateway 网关 2.1 gateway 介绍 2.2 gateway 使用 2.2.1 方式一 2.2.2 方式二(动态路由) 一、Config 远程配置 1.1 config 介绍 微服务意味着要将单体应用中的业务拆分…

【Linux】Ubuntu 解压 zip、z01、z02等压缩文件的方法,Linux如何解压分卷压缩的

zip分卷压缩,在windows上压缩来的,如何解压这种文件: -rw-rw-r-- 1 20401094656 Dec 10 20:06 FFHQ.z01 -rw-rw-r-- 1 20401094656 Dec 10 20:10 FFHQ.z02 -rw-rw-r-- 1 20401094656 Dec 10 23:22 FFHQ.z03 -rw-rw-r-- 1 20401094656 Dec 10…

5.MapReduce之Combiner-预聚合

目录 概述本地预计算 Combiner 意义实践前提代码日志观察 结束 概述 在 MR、Spark、Flink 中,常用的减少网络传输的手段。 通常在 Reducer 端合并,shuffle 的数据量比在 Mapper 端要大,根据业务情况及数据量极大时,将大幅度降低效…

[足式机器人]Part3 机构运动学与动力学分析与建模 Ch00-3(1) 刚体的位形 Configuration of Rigid Body

本文仅供学习使用,总结很多本现有讲述运动学或动力学书籍后的总结,从矢量的角度进行分析,方法比较传统,但更易理解,并且现有的看似抽象方法,两者本质上并无不同。 2024年底本人学位论文发表后方可摘抄 若有…

pyqt treeWidget树生成

生成treeWidget树与获取treeWidget树节点的数据 # encodingUTF-8 import sys from PyQt5.QtCore import Qt from PyQt5.QtWidgets import QApplication, QTreeWidgetItem, QLineEdit, QSpinBox, QComboBox from PyQt5.QtWidgets import QWidget from release_test import Ui_F…

SIP-2401VP SIP音频广播模块SIP-2401VP SIP号角音柱音箱解码poe广播播放核心板

SV-2401VP和SV-2403VP网络音频模块是一款通用的独立SIP音频功能模块,可以轻松地嵌入到OEM产品中。该模块对来自网络的SIP协议及RTP音频流进行编解码。 该模块支持多种网络协议和音频编解码协议,可用于VoIP和IP寻呼以及高质量音乐流媒体播放等应用。同时…

pythroch abaconda 安装 cuda、版本确定、pytorch 安装

一、简述 公司有一个深度学习的项目,身上也没有其他项目,恰好乘着个机会学一下pytorch 和YOLOv8. 1、下载abaconda https://repo.anaconda.com/archive/ 2、安装 环境变量要✔ 其他一直下一步 3、测试 (base) C:\Users\alber>conda -V cond…

leaflet学习笔记-带有方位角信息的圆的绘制(七)

前言 项目中有一个需求,就是需要绘制一个圆,并且绘制的时候还要设置方位角,最后返回圆的坐标集合和方位角。本功能使用Leaflet-GeomanTurf.jsleaflet实现。 方位角简介 在陆地导航中,方位角通常表示为 alpha、α,并定…

Java获取时间,自动给创建时间创建人等赋值

ApiOperation("添加")PostMapping()public ApiResult<?> save(RequestBody FeePropertyRoomArea feePropertyRoomArea) {User usergetLoginUser();LocalDateTime localDateTime LocalDateTime.now();feePropertyRoomArea.setCreateTime(localDateTime);feePr…

关于PhpStorm的安装激活与汉化

访问官网下载PhpStorm https://www.jetbrains.com/phpstorm/download/#sectionwindows 点击download 下载好后&#xff0c;双击exe安装程序 点击下一步 选择安装位置 前两个肯定需要勾选&#xff1a; 创建桌面快捷方式&#xff1b;创建关联php&#xff1b; 根据以往经验&am…

【OpenCV学习笔记07】- 【彩蛋】实现轨迹条控制画笔颜色和笔刷半径,并可以正常绘画

彩蛋 实现轨迹条控制画笔颜色和笔刷半径&#xff0c;并可以正常绘画。 直接上彩蛋代码 示例代码&#xff1a; # 彩蛋&#xff0c;创建一个可以调节颜色和笔刷半径的轨迹栏&#xff0c;并且可以通过鼠标进行绘画 import numpy as np import cv2 as cv# 定义全局变量 # 如果 …

React07-路由管理器react-router-dom(v6)

react-router 是一个流行的用于 React 应用程序路由的库。它使我们能够轻松定义应用程序的路由&#xff0c;并将它们映射到特定的组件&#xff0c;这样可以很容易地创建复杂的单页面应用&#xff0c;并管理应用程序的不同视图。 react-router 是基于 React 构建的&#xff0c;…

大模型PEFT技术原理(一):BitFit、Prefix Tuning、Prompt Tuning

随着预训练模型的参数越来越大&#xff0c;尤其是175B参数大小的GPT3发布以来&#xff0c;让很多中小公司和个人研究员对于大模型的全量微调望而却步&#xff0c;近年来研究者们提出了各种各样的参数高效迁移学习方法&#xff08;Parameter-efficient Transfer Learning&#x…

【开源】基于JAVA的婚恋交友网站

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 数据中心模块2.2 会员管理模块2.3 新闻管理模块2.4 相亲大会管理模块2.5 留言管理模块 三、系统设计3.1 用例设计3.2 数据库设计3.2.1 会员信息表3.2.2 新闻表3.2.3 相亲大会表3.2.4 留言表 四、系统展示五、核心代码5.…