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: postgres
    environment:
      POSTGRES_PASSWORD: mysecretpassword
  redis:
    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: nginx
    hostname: nginx
    container_name: 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:
      - TZ=Asia/Shanghai

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

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

version: "2"

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

version: "2"
services:
  nginx:
    image: nginx
    hostname: nginx
    container_name: nginx
    ports:
      - "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/mapdata
    environment:
      - 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

放一个图片,浏览器访问

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

什么是线程?

线程 1. 线程概述 线程是计算机科学中的基本概念,指的是在一个进程中执行的独立指令流。通常,一个进程可以包含多个线程,它们共享进程的资源,如内存空间、文件句柄等,但每个线程有自己的独立执行流。线程是操作系统进…

计算机毕业设计 基于Java的流浪动物救助平台的设计与实现 Java实战项目 附源码+文档+视频讲解

博主介绍:✌从事软件开发10年之余,专注于Java技术领域、Python人工智能及数据挖掘、小程序项目开发和Android项目开发等。CSDN、掘金、华为云、InfoQ、阿里云等平台优质作者✌ 🍅文末获取源码联系🍅 👇🏻 精…

使用Windbg动态调试目标进程的一般步骤详解

目录 1、概述 2、将Windbg附加到已经启动起来的目标进程上,或者用Windbg启动目标程序 2.1、将Windbg附加到已经启动起来的目标进程上 2.2、用Windbg启动目标程序 2.3、Windbg关联到目标进程上会中断下来,输入g命令将该中断跳过去 3、分析实例说明 …

机器学习之线性回归-多因子房价预测

机器学习是一种实现人工智能的方法 从数据中寻找规律、建立关系,根据建立的关系去解决问题 机器学习的应用场景 数据挖掘、计算机视觉、自然语言处理、证券分析、医学诊断、机器人… 实现机器学习的基本框架 将训练数据喂给计算机,计算机自动求解数据…

javaWebssh校园物业管理系统myeclipse开发mysql数据库MVC模式java编程计算机网页设计

一、源码特点 java ssh校园物业管理系统是一套完善的web设计系统(系统采用ssh框架进行设计开发),对理解JSP java编程开发语言有帮助,系统具有完整的源代码和数据库,系统主要采用 B/S模式开发。开发环境为TOMCAT7.…

网工内推 | 上市公司网工,NP认证优先,最高15薪+项目奖金

01 广东轩辕网络科技股份有限公司 招聘岗位:网络工程师 职责描述: 1、主要负责教育行业园区网的有线及无线网络项目的实施、维护、巡检等工作; 2、协助windows/linux平台服务器OS的安装、部署、配置与维护; 3、协助服务器、存储、…

2023-12-30 买卖股票的最佳时机 II和跳跃游戏以及跳跃游戏 II

122. 买卖股票的最佳时机 II 思路:关键点是每一次利用峰值来计算【画图好理解一点,就是计算陡坡的值】!每一次累加和的最大! 或者可以这样理解,把利润划分为每天的,如假如第 0 天买入,第 3 天卖出&#xf…

【I2多语言】多语言快速上手

简介 官方API:http://www.inter-illusion.com/assets/I2LocalizationManual/I2LocalizationManual.html意义:更改游戏语言(多语言支持) 快速上手 插件安装: 直接拖拽进Unity即可 创建语言源(Creating a …

夏目友人帐OVA:和猫咪老师的初次跑腿、曾几何时下雪之日 2013.12.15

夏目友人帐OVA 1、和猫咪老师的初次跑腿 / ニャンコ先生とはじめてのおつかい2、曾几何时下雪之日 / いつかゆきのひに 1、和猫咪老师的初次跑腿 / ニャンコ先生とはじめてのおつかい 和夏目一起外出的途中,猫咪老师因追蜻蜓遇到了一对迷路的龙凤胎兄妹。猫咪老师不…

设计模式⑤ :一致性

一、前言 有时候不想动脑子,就懒得看源码又不像浪费时间所以会看看书,但是又记不住,所以决定开始写"抄书"系列。本系列大部分内容都是来源于《 图解设计模式》(【日】结城浩 著)。该系列文章可随意转载。 …

旧衣回收小程序,降低企业商家成本,推动行业发展!

随着大众环保意识的增加,人们对于闲置衣服的处理方式也从丢弃转向回收,旧衣服回收行业受到了大家的关注,成为了新的商业发展模式。 在当下科技发展的背景下,旧衣回收从回收箱演变到了线上预约上门回收,旧衣回收小程序…

地铁判官(外包)

到处都是说外包不好不好的,从没有想过自身问题。 例如: 技术人员动不动就是说,进了外包三天,一年,三年之后技术退步很多。就算你这样的人进了甲方,也是个渣渣。(声明一下,我也是外包&#xff0…

jmeter监控服务器资源使用情况

GitHub - undera/perfmon-agent: Server metrics fetching agent, based on SIGAR 下载安装包:ServerAgent-2.2.3.zip 解压先 启动,如果是windows运行startAgent.bat,如果是linux运行startAgent.sh 注意:linux上注意权限的问题…

离散数学-二元关系

4.1关系的概念 1)序偶及n元有序组 由两个个体x和y&#xff0c;按照一定顺序排序成的、有序数组称为有序偶或有序对、二元有序组&#xff0c; 记作<x&#xff0c;y>&#xff0c;其中x是第一分量&#xff0c;y是第二分量。 相等有序偶&#xff1a;第一分量和第二分量分…

三维地下管线建模工具MagicPipe3D V3.3发布

经纬管网建模系统MagicPipe3D V3.3 持续更新&#xff0c;欢迎下载试用&#xff1a;http://www.magic3d.net 1、发布MagicPipe3D宣传操作视频, 2、发布MagicPipe3D数据规格说明, 3、更新使用手册到3.3.0版本, 4、增加支持属性字段中文, 5、增加支持附属物方…

由于找不到x3daudio1_7.dll无法继续执行此代码的多种解决方法大全

在我们运行软件游戏的时候&#xff0c;偶尔会出现无法运行的报错&#xff0c;其中之一就是“找不到x3daudio1_7.dll”的错误。x3daudio1_7.dll是Windows操作系统中的一个重要动态链接库文件&#xff0c;主要负责音频设备的3D音效功能。电脑“找不到x3daudio1_7.dll”可能会导致…

C++类与对象基础(8)

目录 1. 隐式类型转换与关键字explicit: 1.1 隐式类型转换举例&#xff1a; 1.2 explicit关键字&#xff1a; 2. 友元&#xff1a; 2.1 友元函数&#xff1a; 2.2 友元类&#xff1a; 3. 内部类&#xff1a; 4. 勘误&#xff1a; 1. 隐式类型转换与关键字explicit: 1.1…

电子化以后如何申请软件著作权

​ 申请地址&#xff1a;中国版权登记业务平台 附件&#xff1a; 软件著作权设计说明书模板&#xff08;含填写说明&#xff09;.docx 软件著作权源程序模板.docx 软件著作权前期开发说明、合作开发协议、版本说明、法人证明、授权书模板.docx 注册、登录和实名认证 首先访问…

【echarts】雷达图参数详细介绍

1. 详细示例 var option {tooltip: {trigger: item},radar: {startAngle: 90,//第一个指示器轴的角度&#xff0c;默认90indicator: [// 指示器{ name: Category A, max: 220 },// name:指示器名称{ name: Category B, max: 200 },// max:指示器的最大值&#xff0c;可选&…

Nginx介绍与安装

目录 nginx服务 1、Nginx 介绍 2、为什么选择 nginx 3、IO多路复用 1、I/O multiplexing【多并发】 2、一个请求到来了&#xff0c;nginx使用epoll接收请求的过程是怎样的? 3、异步&#xff0c;非阻塞 4、nginx 的内部技术架构 5、yum安装部署nginx和配置管理 1.获取…