linux服务器上,docker安装nginx

news2024/11/29 0:49:18

如果出现
Using default tag: latest Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Post "http://%2Fvar%2Frun%2Fdocker.sock/v1.24/images/create?fromImage=nginx&tag=latest": dial unix /var/run/docker.sock: connect: permission denied
查看 docker 命令权限问题

在远程 Linux 服务器上,使用docker 安装 Nginx ,以及对 Nginx 修改配置,在这里提供两种修改方式(目前我个人使用的是第二种方式)

创建 Nginx 服务器

  1. 获取nginx镜像列表
docker search nginx
  1. 拉取nginx镜像(注:默认选取官方最新镜像),其它版本可以去DockerHub查询
docker pull nginx
  1. 查看nginx镜像信息(使用第二种修改 Nginx 配置方式,可以从这一步开始接 修改方式二 的后续操作)
docker images nginx
  1. 创建nginx容器
docker run --name nginxText -p 80:80 -d nginx

–name :指的是创建容器后的名字
-d : 指的是对应镜像名
-p 指定主机与容器内部的端口号映射关系,格式 -p [宿主机端口号]:[容器内部端口],此处我使用了主机80端口,映射容器80端口

  1. 使用docker ps命令,可以查看到正在运行的nginx容器
    请添加图片描述
    在浏览器访问主机,会看到nginx欢迎页,如果你是云服务器(云服务器公有 IPv4 地址),请记得开放对应的外网端口
    请添加图片描述
    到此Nginx容器的搭建已经完成,接下来是Nginx配置文件的修改

修改方式一:进入到nginx容器内部修改

适合改动少的情况

这里提供进入容器的方式,对应文件位置,退出容器方式。具体修改内容请根据需求调整。

  1. 进入容器内部:
docker exec -it 容器名或者容器ID bash   # 进入容器的命令行
例如: docker exec -it nginxText bash
  1. 进入到nginx容器内部后,我们可以切换到 /etc/nginx目录下,可以看到相关的nginx配置文件都在/etc/nginx目录下
cd /etc/nginx
ls -l

请添加图片描述

  1. nginx容器内的默认首页html文件目录在 /usr/share/nginx/html,pwd查看当前所在目录,目录下有两个nginx默认页面
cd /usr/share/nginx/html
ls -l

请添加图片描述

  1. 日志文件位置在 /var/log/nginx 目录下
cd /var/log/nginx
ls -l

请添加图片描述

  1. 执行exit命令退出容器

请添加图片描述
修改方式二:将nginx容器内部配置文件挂载到主机(此方式可接在下载Nginx镜像后)

将nginx容器内部配置文件挂载到主机,之后就可以在主机对应目录修改即可,适用于大部分场景。

  1. 创建Nginx配置文件
    在服务器文件夹,任意自己想要的位置(一般为 /home 文件夹下的任意位置),创建Nginx配置文件目录,我这里放在 /home/ubuntu/mysoft/docker-data 文件夹下
# 创建挂载目录
mkdir -p /home/ubuntu/mysoft/docker-data/nginx/conf
mkdir -p /home/ubuntu/mysoft/docker-data/nginx/log
mkdir -p /home/ubuntu/mysoft/docker-data/nginx/html
  1. 创建一个容器,将创建容器时的配置,复制到上一步创建的挂载目录中
docker run --name nginxText -p 80:80 -d nginx

–name :指的是创建容器后的名字
-d : 指的是对应镜像名
-p 指定主机与容器内部的端口号映射关系,格式 -p [宿主机端口号]:[容器内部端口],此处我使用了主机80端口,映射容器80端口

docker cp nginx:/etc/nginx/nginx.conf /home/nginx/conf/nginx.conf

docker cp [容器名/容器ID]:/容器默认配置文件地址 /粘贴文件地址

此步骤所有命令

# 生成容器
docker run --name nginx -p 80:80 -d nginx
# 将容器nginx.conf文件复制到宿主机
docker cp nginx:/etc/nginx/nginx.conf /home/ubuntu/mysoft/docker-data/nginx/conf/nginx.conf
# 将容器conf.d文件夹下内容复制到宿主机
docker cp nginx:/etc/nginx/conf.d /home/ubuntu/mysoft/docker-data/nginx/conf/conf.d
# 将容器中的html文件夹复制到宿主机
docker cp nginx:/usr/share/nginx/html /home/ubuntu/mysoft/docker-data/nginx/
# 将容器中的日志log文件夹复制到宿主机
docker cp nginx:/var/log/nginx/ /home/ubuntu/mysoft/docker-data/nginx/log
  1. 停止并移除容器
命令:
停止容器:docker stop dbc 
移除容器:docker rm dbc 
  1. 再次创建一个新容器并作目录挂载
docker run \
-p 80:80 \
--name breed-web \
-v /home/ubuntu/mysoft/docker-data/nginx/conf/nginx.conf:/etc/nginx/nginx.conf \
-v /home/ubuntu/mysoft/docker-data/nginx/conf/conf.d:/etc/nginx/conf.d \
-v /home/ubuntu/mysoft/docker-data/nginx/log:/var/log/nginx \
-v /home/ubuntu/mysoft/docker-data/nginx/html:/usr/share/nginx/html \
-d nginx

(建议将命令在文档中编辑好后复制,再 Shift + Insert 粘贴到 xshell)

请添加图片描述

使用 docker ps 查看,容器已经创建
在浏览器访问主机(例如:192.168.124.182:9002),会看到nginx欢迎页,如果你是云服务器(云服务器公有 IPv4 地址,例如http://51.65.205.216:9000/),请记得开放对应的外网端口

4.1(可选)单行命令模式

docker run -p 9000:80 --name breeding -v /home/ubuntu/mysoft/docker-data/nginx/conf/nginx.conf:/etc/nginx/nginx.conf -v /home/ubuntu/mysoft/docker-data/nginx/conf/conf.d:/etc/nginx/conf.d -v /home/ubuntu/mysoft/docker-data/nginx/log:/var/log/nginx -v /home/ubuntu/mysoft/docker-data/nginx/html:/usr/share/nginx/html -d nginx
命令描述
–name breeding启动容器的名字
-d后台运行
-p 9000:80将容器的 9000 端口映射到主机的 80 端口
-v /home/nginx/conf/nginx.conf:/etc/nginx/nginx.conf挂载nginx.conf配置文件
-v /home/nginx/conf/conf.d:/etc/nginx/conf.d挂载nginx配置文件
-v /home/nginx/log:/var/log/nginx挂载nginx日志文件
-v /home/nginx/html:/usr/share/nginx/html挂载nginx内容
nginx指的是对应镜像名
\shell 命令换行
  1. 设置开机启动nginx
docker update breeding --restart=always

breeding 为容器名称

  1. 修改html文件,查看是否生效
    将 /home/ubuntu/mysoft/docker-data/nginx/html/index.html 文件下载下来,修改了标题,再传入到/home/ubuntu/mysoft/docker-data/nginx/html 文件夹下,覆盖之前的 index.html 文件,重启容器刷新页面。
# 重启容器
docker restart breeding 

请添加图片描述

附件1:
容器命令

docker ps         # 查看正在运行的容器
docker ps -a      # 查看所有容器
docker ps -l      # 查看最近一次运行的容器

docker create 容器名或者容器ID    # 创建容器
docker start [-i] 容器名        # 启动容器
docker run 容器名或者容器ID       # 运行容器,相当于docker create + docker start
docker attach 容器名或者容器ID bash     # 进入容器的命令行(退出容器后容器会停止)
docker exec -it 容器名或者容器ID bash   # 进入容器的命令行
docker stop 容器名                    # 停止容器
docker rm 容器名                      # 删除容器

docker top 容器名                    # 查看WEB应用程序容器的进程
docker inspect 容器名                # 查看Docker的底层信息

参考:
Docker 安装 Nginx 容器 (完整详细版)
使用docker安装nginx
docker快速安装nginx以及实现反向代理(上)

其他:
Docker 日常命令大全(完整详细版)

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

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

相关文章

不衔接的两个视频能拼在一起吗?怎么把视频拼接起来?

怎么把视频拼接起来?相信大家在平时刷小视频的时候,都看到过视频合集,例如搞笑视频合集、综艺片段合集、变装合集等等。其实这些视频合集都是通过视频拼接来完成的,只需短短几分钟就能通过这些视频获得愉悦体验,非常适…

一学就会-----删除链表中的重复节点

文章目录 题目描述思路一代码示例思路二代码示例 题目描述 在一个排序的链表中,存在重复的结点,请删除该链表中重复的结点,重复的结点不保留,返回链表头指针。 图片示例: 思路一 解决该问题较简单,且在…

光纤跳线性能测试科普

光纤跳线是一种用于连接光纤设备或光纤网络的光学传输线路,它由两个光纤连接器和一段光纤组成。光纤跳线的质量直接影响着光信号的传输效率和稳定性,因此需要进行一些测试来保证其性能。 一、测试类型 光纤跳线性能测试主要有以下四种: 极性…

【基于容器的部署、扩展和管理】3.10 云原生容器运行时环境和配置管理

往期回顾: 第一章:【云原生概念和技术】 第二章:【容器化应用程序设计和开发】 第三章:【3.1 容器编排系统和Kubernetes集群的构建】 第三章:【3.2 基于容器的应用程序部署和升级】 第三章:【3.3 自动…

运维圣经:Webshell应急响应指南

目录 Webshell简介 Webshell检测手段 Webshell应急响应指南 一. Webshell排查 二. 确定入侵时间 三. Web日志分析 四. 漏洞分析 五. 漏洞复现 六. 清除Webshell并修复漏洞 七. Webshell防御方法 Webshell简介 Webshell通常指以JSP、ASP、 PHP等网页脚本文件形式存在…

kubesphere jenkins 构建java项目报错Could not parse metadata

kubesphere jenkins 构建java项目报错Could not parse metadata 问题描述: [ERROR] Failed to execute goal org.apache.maven.plugins:maven-install-plugin:2.4:install (default-install) on project common-plugin-starter: Failed to install metadata com.n…

struct | 详解C语言结构体

结构体(struct)是由一系列具有相同类型或不同类型的数据构成的数据集合,也叫结构。 结构体和其他类型基础数据类型一样,例如 int 类型,char类型;只不过结构体可以做成你想要的数据类型,以方便日后的使用。 在实际项目…

STM32单片机(六)TIM定时器 -> 第二节:TIM定时中断练习(定时器定时中断和定时器外部时钟)

❤️ 专栏简介:本专栏记录了从零学习单片机的过程,其中包括51单片机和STM32单片机两部分;建议先学习51单片机,其是STM32等高级单片机的基础;这样再学习STM32时才能融会贯通。 ☀️ 专栏适用人群 :适用于想要…

vivado:引脚已约束但是报错

一、问题引入 报错信息如下: [DRC UCIO-1] Unconstrained Logical Port: 3 out of 3 logical ports have no user assigned specific location constraint (LOC). This may cause I/O contention or incompatibility with the board power or connectivity affect…

msvc编译qt源码(qt6之前版本)

配置环境 根据源码里的readme(D:\Qt\Qt5.9.9\5.9.9\Src\readme)安装对应的依赖环境,如果是整个源码编译必须都安装 Qt for Windows - Requirements | Qt 5.15 Qt for Windows - Building from Source | Qt 5.15 Qt WebEngine Platform Not…

day02--java基础编程:变量,数据类型,类型转换,运算规则,运算符,分支结构,循环(随机数),方法,重载,可变参数,递归,数组,冒泡排序

1 Day02–变量数据类型类型转换 1.1 前言 1.1.1 标识符 可以简单的理解为一个名字。在Java中,我们需要标识代码的很多元素,包括包名、类名、方法、字段、变量等。我们选择的名称就称为标识符,并且遵循以下规则: A.标识符可以由…

docker-compose部署单点apm链路追踪

一.docker-compose 安装下载 1、登入 GitHub ,找到对应版本 curl -L https://github.com/docker/compose/releases/download/1.27.4/docker-compose-uname -s-uname -m -o /usr/local/bin/docker-compose2、将下载后的文件放到 /usr/local/bin 目录下,并…

客服部2023年中总结|用心服务,稳步提升用户体验

一、人工智能相辅相成:提升服务效能 2023年上半年,CSDN人工客服处理客诉总量为26859条,同比去年客诉量38695,下降30.59%;问题解决效率为72min,同比下降19%。 客诉量TOP5: 付费专栏质量问题退费博文审核未…

一文吃透低代码平台的衍生历程、优势及未来趋势

一、低代码概念 低代码开发平台是一种无需编码或者只需要少量代码即可快速生成应用程序的开发平台,通过可视化进行应用程序开发的方法,让不同经验水平的开发人员可以通过图形化的用户界面,使用拖拽组件和模型驱动的逻辑来创建网页和移动应用程…

Unity3D:场景可见性

推荐:将 NSDT场景编辑器 加入你的3D工具链 3D工具集: NSDT简石数字孪生 场景可见性 Unity 的场景可见性控件可用于在 Scene 视图中快速隐藏和显示游戏对象,而无需更改它们在游戏中的可见性。 这可用于处理难以查看和选择特定游戏对象的大型或…

Pytorch中的数据操作和预处理

Pytorch中的数据操作和预处理 整体概述 在Pytorch中的torch.util.data模块包含着一些常用的数据预处理的操作,主要用于数据的读取、切分、准备等 常用的数据操作类如下表所示 类功能torch.utils.data.TensorDataset()将数据处理为张量torch.utils.data. ConcatDat…

sqli-labs靶场通关(11-20)

接着上一条博客 Less-11 打开题我们发现界面发生了明显的变化,变成了登录界面。前十关的注入点都在上方的url中(get型),从11关开始就变为了post型,本题的注入点就在输入框中。 我们随便输入比如1,会出现以下界面,上方…

外贸企业必备的客户服务系统!

客户服务已经成为现在市场中,各个企业关注的重点对象。特别是对于外贸企业来讲,优质的客户服务不仅能为客户留下好的印象,提升企业的品牌形象,还能为企业带来长期的收益。而想要做好客户服务,选择一款合适的客户服务系…

验证码就用它,一键接入,优雅又有趣

现在登录什么账号,基本都用到验证码,多数是短信验证码,不知道大家是什么感受,了不起倒不太喜欢这种操作,每次一登录一个账号就要去手机清理一下短信,不然小红点看着难受。不过近两年行为验证码异军突起&…

估计一个点云的表面法线

包含相关头文件 #include <pcl/io/pcd_io.h> #include <pcl/point_types.h> #include <pcl/features/normal_3d.h> #include <pcl/visualization/pcl_visualizer.h> 定义了两个类型别名 PointT 和 PointNT&#xff0c;用于表示输入点云和输出点云中各…