Docker Linux快速安装及Nginx部署
前言
最近正在部署一套新的Linux服务器环境,基于Docker来部署所有的应用,顺便整理了一套经过验证的操作手册,以便大家遇到类似需求时,可以直接拿来用。
本文会涉及以下知识点:Docker的Linux安装和卸载、Docker用户组的创建、基于Docker的Nginx部署及简单配置。
Docker的Linux安装
笔者这里采用的是TencentOS Server的云服务器,完全兼容CentOS 8版本。在安装时,大家可进行版本对照。
卸载旧版本
如果服务器是新购买的,可跳过该步骤。如果服务器上已经安装过Docker,则可使用如下命令进行卸载:
yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
当然,如果安装的过程中出现错误希望重新安装,也可采用上面的命令进行卸载。
添加Docker镜像源
直接访问Docker官方的镜像源进行安装、下载时往往会出现网络问题,在使用时可先修改Docker的镜像源。
通常可用使用阿里云地址、腾讯云地址等,这里因为使用的是腾讯云服务器,则使用腾讯云的镜像源。
执行以下命令,添加镜像源:
dnf config-manager --add-repo=https://mirrors.cloud.tencent.com/docker-ce/linux/centos/docker-ce.repo
其中,dnf
命令是 “Dandified Yum” 的简称,它是一种软件包管理器,用于自动安装、更新和删除包,同时也处理依赖关系。它是Fedora、CentOS和RHEL等基于RPM的Linux发行版的默认包管理器。
在CentOS 8之前,yum
是默认的包管理器。从CentOS 8开始,dnf成为默认的包管理器,但是yum
仍然可以使用。如果你的操作系统暂不支持dnf
命令,可采用传统的yum
命令。
可执行以下命令,查看已添加的Docker镜像源:
dnf list docker-ce# 如果是yum命令,
yum list docker-ce
上述命令会列出所有可用的docker-ce软件包。
为了兼容性,后续命令我们统一采用yum
命令来进行安装和操作。
Docker安装及启动
在Docker安装之前,往往需要进行一些基础依赖的安装,同时也会设置随机启动的操作。
Docker安装
安装所需依赖包:
yum install yum-utils device-mapper-persistent-data lvm2
在安装之前,查询可安装的版本(可省略):
yum list docker-ce --showduplicates | sort -r
下面是安装Docker的重点,只有一步:
yum install docker-ce docker-ce-cli containerd.io
验证是否安装成功:
docker version#显示信息
Client: Docker Engine - CommunityVersion: 24.0.6API version: 1.43Go version: go1.20.7Git commit: ed223bcBuilt: Mon Sep 4 12:33:07 2023OS/Arch: linux/amd64Context: default
Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?
Docker启动
启动Docker服务和设置开机启动:
# 设置开机启动
systemctl enable docker
# 启动Docker
systemctl start docker
启动完成之后,可执行如下命令进行验证是否安装成功:
docker run hello-world
如果控制台打印类似如下信息,则表示安装启动成功:
Unable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world
c1ec31eb5944: Pull complete
Digest: sha256:ac69084025c660510933cca701f615283cdbb3aa0963188770b54c31c8962493
Status: Downloaded newer image for hello-world:latestHello from Docker!
This message shows that your installation appears to be working correctly.
Docker用户组管理
默认情况下,Docker命令会使用Unix socket与Docker引擎通讯。而只有root用户和docker组的用户才可以访问 Docker引擎的Unix socket。
出于安全考虑,一般Linux系统上不会直接使用root用户。因此,更好地做法是将需要使用docker的用户加入docker用户组。
在Centos8下建立docker用户组并使用docker用户来操作docker,可以按照以下步骤进行。
以root用户身份登录CentOS 8系统,创建一个名为docker的新用户组:
sudo groupadd docker
接下来,添加用户到docker组。将username替换为你的用户名:
sudo usermod -aG docker username
这个命令将把你的用户添加到docker组。
验证你的用户是否已经被添加到docker组中,运行以下命令:
groups username
如果一切顺利,你应该能看到docker出现在列出的组中。
让上述改动生效需要重新登录或者使用以下命令:
newgrp docker
最后,验证是否可以无需sudo权限就能运行Docker。运行以下命令:
docker run hello-world
如果一切顺利,你应该能看到hello-world程序的输出。
基于Docker的Nginx部署
这里讲解一下Nginx的安装步骤以及nginx.conf的简单配置。
NGINX镜像安装
在安装Nginx的Docker镜像之前,可先进行镜像搜索:
docker search nginx
从搜索到镜像中选择符合条件的镜像,然后进行拉取:
docker pull nginx:latest
拉取镜像之后,就可以进行对应镜像的配置和启动容器了。
这里为了获取Nginx的基础配置文件,先简单启动一个Nginx容器,当获得对应的配置文件之后,删除该容器,再重新启动一个正式的容器。
#启动一个容器
docker run -d --name nginx nginx
# 查看 容器 获取容器ID 或直接使用名字
docker container ls
# 在当前目录下创建目录:conf
mkdir conf
# 拷贝容器内 Nginx 默认配置文件到本地当前目录下的 conf 目录($PWD当前全路径)
docker cp nginx:/etc/nginx/nginx.conf $PWD/conf
docker cp nginx:/etc/nginx/conf.d $PWD/conf# 停止容器
docker container stop nginx
# 删除容器
docker container rm nginx# 在当前目录下创建目录:html放静态文件
mkdir html
通过上述操作,可获得宿主机上一些关于Nginx的基础配置和目录文件。
下面可以进行Nginx容器的正式部署了:
docker run -d -p 80:80 \-p 443:443 \--name nginx \-v /home/worker/nginx/html:/usr/share/nginx/html \-v /home/worker/nginx/conf/nginx.conf:/etc/nginx/nginx.conf \-v /home/worker/nginx/conf/conf.d:/etc/nginx/conf.d \-v /home/worker/nginx/logs:/var/log/nginx \nginx
上述命令的基本解释:
- -d:表示在一直在后台运行容器。
- -p 80:80:对端口进行映射,将本地80端口映射到容器内部的80端口。443端口的映射同理。
- –name:设置创建的容器名称。
- -v:将本地目录(文件)挂载到容器指定目录。
需要注意的事,一般启动Nginx容器时,需要同时把容器的80端口和443端口同时与宿主机进行映射,以免从HTTP请求向HTTPS请求切换时出现容器端口未映射的情况。
NGINX配置
这里展示一个简单的Nginx配置:
server {listen 443 ssl;server_name www.xxx.com; # 申请过证书的域名ssl_certificate /etc/nginx/conf.d/certs/xxxx.pem;ssl_certificate_key /etc/nginx/conf.d/certs/xxxx.key;ssl_session_timeout 5m;ssl_protocols TLSv1 TLSv1.1 TLSv1.2;ssl_ciphers ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP;ssl_prefer_server_ciphers on;location / {root /usr/share/nginx/html/admin;index index.html index.htm;}location /admin {alias /usr/share/nginx/html/admin;index index.html index.htm;}location /s {proxy_pass http://127.0.0.1:8080/;}
}
在上述配置中,重点关注一下HTTPS的配置,其中ssl_certificate
和ssl_certificate_key
两项涉及到的证书文件,通常会放在/etc/nginx/conf.d
下,这样即可在宿主机对应的目录下替换证书文件以及修改Nginx的配置文件了。
当然,Nginx的日志输出,通常也存储在容器挂载的宿主机对应文件内。
小结
至此,关于Linux(CentOS 8)中如何修改镜像源,如何安装Docker,如何启动Docker,如何配置独立的Docker用户组,如何部署Nginx容器及Nginx的简单配置等已经讲解完毕。希望能够对大家有所帮助。
相关文章:
Docker Linux快速安装及Nginx部署
前言 最近正在部署一套新的Linux服务器环境,基于Docker来部署所有的应用,顺便整理了一套经过验证的操作手册,以便大家遇到类似需求时,可以直接拿来用。 本文会涉及以下知识点:Docker的Linux安装和卸载、Docker用户组…...
Mac M1 Parallels CentOS7.9 Install Parallels Tools
一、挂载parallels-tools安装包 mkdir /media/cdrom/ mount /dev/cdrom /media/cdrom/ mount: /dev/sr0 写保护,将以只读方式挂载二、GCC升级 yum install -y centos-release-scl yum install -y devtoolset-8-gcc*# 切换当前会话中gcc版本为8 scl enable devtool…...
计算机网络物理层 习题答案及解析
2-1 下列选项中,不属于物理层接口规范定义范畴的是( D )。 A. 引脚功能 B. 接口形状 C. 信号电平 D. 传输媒体 【答案】D 【解析】 2-2 某网络在物理层规定,信号的电平范围为- 15V~15V , 电线长…...
【解决】Unity 设置跨设备分辨率表现
开发平台:Unity 2018版本以上 开发语言:CSharp 编程平台:Visual Studio 2022 问题描述 使用 UnityEngine.dll 中关于设置分辨率的方法时,无法满足应用以设定分辨率进行屏幕显示问题。因而造成画面不同程度的拉伸情况。而这种情…...
基于单片机的智能衣柜设计
一、摘要 随着科技的不断发展,人们对于生活品质的要求越来越高。智能衣柜作为智能家居的一个重要组成部分,能够为用户提供便捷、个性化的衣物管理服务。本文主要研究了基于单片机的智能衣柜设计,通过对硬件系统和软件系统的设计与实现&#…...
HttpSession的使用
1 HttpSession 概述 在 Java Servlet API 中引入 session 机制来跟踪客户的状态。session 指的是在一段时间内,单个客户与 Web 服务器的一连串相关的交互过程。在一个 session 中,客户可能会多次请求访问同一个网页,也有可能请求访问各种不同…...
人工智能在金融领域的应用存在的4大挑战
金融服务供应商应该有计划地应对AI面临的难题 金融行业投资人工智能热潮带来有关数据安全和透明度的新问题。由于数据管理实践随着新的 AI 解决方案的引入而不断发展,应对这些新问题以及金融服务领域 AI 面临的其他挑战尤为重要。各组织必须认识到可能面临以下挑战…...
EasyExcel写出包含多个sheet页的Excel
https://blog.csdn.net/qq_38751895/article/details/131852740...
分类预测 | Matlab实现RP-CNN-LSTM-Attention递归图优化卷积长短期记忆神经网络注意力机制的数据分类预测【24年新算法】
分类预测 | Matlab实现RP-CNN-LSTM-Attention递归图优化卷积长短期记忆神经网络注意力机制的数据分类预测【24年新算法】 目录 分类预测 | Matlab实现RP-CNN-LSTM-Attention递归图优化卷积长短期记忆神经网络注意力机制的数据分类预测【24年新算法】分类效果基本描述模型描述程…...
【教学类-09-04】20240102《游戏棋N*N》数字填写,制作棋子和骰子
作品展示 背景需求: 最近在清理学具材料库,找到一套1年多前的《N*N游戏棋》,把没有用完的棋盘拿出来,,想给大4班换花样,并把它们用掉。 程序代码在这里 【教学类-09-03】20221120《游戏棋10*10数字如何直接…...
【flink番外篇】9、Flink Table API 支持的操作示例(14)- 时态表的join(java版本)
Flink 系列文章 一、Flink 专栏 Flink 专栏系统介绍某一知识点,并辅以具体的示例进行说明。 1、Flink 部署系列 本部分介绍Flink的部署、配置相关基础内容。 2、Flink基础系列 本部分介绍Flink 的基础部分,比如术语、架构、编程模型、编程指南、基本的…...
【leetcode100-30】【链表】两两交换链表节点
【题干】 给你一个链表,两两交换其中相邻的节点,并返回交换后链表的头节点。你必须在不修改节点内部的值的情况下完成本题(即,只能进行节点交换)。 【思路】 先说递归的,退出条件很明显,当剩…...
小秋SLAM入门实战ubuntu所有文章汇总
Ubuntu系统安装详细教程 Ubuntu系统安装ROS详细教程 Ubuntu系统下如何搭建深度学习和SLAM开发环境 Ubuntu系统搭建SLAM开发环境 ubuntu 终端如何停止快速打印的输出以及恢复命令 ubuntu 终端如何快速打开当前路径下的图形化窗口界面? killall -9用途用法 ps -xu | …...
深度学习课程实验二深层神经网络搭建及优化
一、 实验目的 1、学会训练和搭建深层神经网络; 2、掌握超参数调试正则化及优化。 二、 实验步骤 初始化 1、导入所需要的库 2、搭建神经网络模型 3、零初始化 4、随机初始化 5、He初始化 6、总结三种不同类型的初始化 正则化 1、导入所需要的库 2、使用非正则化…...
Elasticsearch:Serarch tutorial - 使用 Python 进行搜索 (二)
这个是继上一篇文章 “Elasticsearch:Serarch tutorial - 使用 Python 进行搜索 (一)” 的续篇。在今天的文章中,我们接着来完成如何进行分页及过滤。 分页 - pagination 应用程序处理大量结果通常是不切实际的。 因此࿰…...
力扣labuladong——一刷day84
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、力扣743. 网络延迟时间 前言 Dijkstra 算法(一般音译成迪杰斯特拉算法)无非就是一个 BFS 算法的加强版,它们都是从二叉…...
Linux环境vscode clang-format格式化:vscode clang format command is not available
问题现象 vscode安装了clang-format插件,但是使用就报错 问题原因 设置中配置的clang-format插件工具路径不正确。 解决方案 确认本地安装了clang-format工具:终端输入clang-format(也可能是clang-format-13等版本,建议tab自…...
【KingbaseES】实现MySql函数WEEKS_BETWEEN
WEEKS_BETWEEN CREATE OR REPLACE FUNCTION weeks_between(start_date date, end_date date) RETURNS integer AS $$ BEGIN RETURN EXTRACT(WEEK FROM end_date) - EXTRACT(WEEK FROM start_date); END; $$ LANGUAGE plpgsql IMMUTABLE;结果展示...
@Scheduled定时任务现状与改进
项目场景: 定时任务现状:每个项目都会有一些配置信息,这些信息我们是都放在一个配置服务中,这个服务会定时从配置表中加载所有配置存入本地JVM内存,以供调用方获取(调用方集成了配置服务的SDK,…...
python+selenium爬虫笔记
本文只是做例子,具体网站路径麻烦你们换下,还有xpath路径也换下 一、安装所需要的组件(此处采用谷歌) 1、安装驱动 查看你的浏览器版本,去安装对应的版本 下载驱动 下载驱动路径 之前版本的 输入这个路径下载下来解压…...
【LMM 009】MiniGPT-4:使用 Vicuna 增强视觉语言理解能力的多模态大模型
论文描述:MiniGPT-4: Enhancing Vision-Language Understanding with Advanced Large Language Models 论文作者:Deyao Zhu∗ Jun Chen∗ Xiaoqian Shen Xiang Li Mohamed Elhoseiny 作者单位:King Abdullah University of Science and Techn…...
SpringBoot学习(三)-整合JDBC、Druid、MyBatis
注:此为笔者学习狂神说SpringBoot的笔记,其中包含个人的笔记和理解,仅做学习笔记之用,更多详细资讯请出门左拐B站:狂神说!!! 一、整合JDBC使用(理解) 创建项目 勾选依赖启动器 查看依赖 …...
如何选择合适的语音呼叫中心?
市场上不同的语音呼叫中心提供商,都有其独特的优势和不足。企业在选择语音呼叫中心服务公司时,主要考虑以下因素:服务质量、价格、技术支持、客户支持等。 首先,服务质量是选择语音呼叫中心需关注的最重要因素之一。 为确保语音…...
使用qtquick调用python程序
一. 内容简介 使用qtquick调用python程序 二. 软件环境 2.1vsCode 2.2Anaconda version: conda 22.9.0 2.3pytorch 安装pytorch(http://t.csdnimg.cn/GVP23) 2.4QT 5.14.1 新版QT6.4,,6.5在线安装经常失败,而5.9版本又无法编译64位程序…...
【Axure高保真原型】树形表格_多选效果
今天和大家分享树形表格_多选效果的原型模板,点击树的箭头可以展开或者收起子节点,点击多选按钮可以选中或取消选择该行以及子级行内容,同时反选父级行内容,父级行内容能根据子级选中的数量自动反选,包括全选、半选和未…...
【Filament】加载obj和fbx模型
1 前言 3D 模型的常用格式主要有 obj、fbx、gltf 等,Filament 中的 filamesh.exe 工具可以将 obj、fbx 格式转换为 filamesh 格式,然后再加载显示。对于 gltf 格式模型,可以通过 ModelViewer 加载显示,这不在本文的讨论范围内。 1…...
[USACO04OPEN] The Cow Lineup
题目描述 约翰的 N ( 1 ≤ N ≤ 100000 ) N ( 1 \leq N \leq 100000 ) N(1≤N≤100000) 只奶牛站成了一列。每只奶牛都写有一个号牌,表示她的品种,号牌上的号码在 1 … K &#x…...
软件工具集合
代码文档自动生成工具: Doxygen download 软件分析工具: perf gdb flamegraph 代码量统计: vscode插件:VS Code Counter 代码备注 vsocde插件: Line Note...
C#利用openvino部署PP-TinyPose人体姿态识别
【官方框架地址】 github.com/PaddlePaddle/PaddleDetection 【算法介绍】 关键点检测算法往往需要部署在轻量化、边缘端设备上,因此长期以来都存在一个难题:精度高、速度则慢、算法体积也随之增加。而PP-TinyPose的出世彻底打破了这个僵局,…...
MindSpore Serving与TGI框架 の 对比
一、MindSpore Serving MindSpore Serving是一款轻量级、高性能的服务工具,帮助用户在生产环境中高效部署在线推理服务。 使用MindSpore完成模型训练>导出MindSpore模型,即可使用MindSpore Serving创建该模型的推理服务。 MindSpore Serving包含以…...
金坛市建设银行网站/做网站优化的公司
一、了解几个相关的类 1、NSNotification 这个类可以理解为一个消息对象,其中有三个成员变量。 这个成员变量是这个消息对象的唯一标识,用于辨别消息对象。 property (readonly, copy) NSString *name; 这个成员变量定义一个对象,可以理解为针…...
西部网站建设/天堂网长尾关键词挖掘网站
1.进程和线程 进程: 计算机中程序关于某数据集合的一次运行活动,是计算机系统进行资源分配和调度的基本单位,是操作系统结构的基础。 线程: 线程是进程的实例,是CPU进行资源分配和调度的最小单位,线程是轻量…...
镇江网站建设联系思创/sem是什么电镜
在总部位于新加坡的员工福利初创公司CXA Group对我们的核心Web平台进行评估的过程中,我们决定将方向从陈旧的现有体系结构转向,从头开始重建前端。 该平台面临的挑战之一是创建一个在CXA Group的12个目标国家/地区(在整个亚洲)都能…...
做网站书/seo是什么意思广东话
之前看到园子里的朋友,写了一个自动生成属性的小工具,可惜操作起来不太方便,要切换窗体。而Visual Studio中自带的自动生成属性的功能不好用,每次只能成生成一个,不能批量。今天在整理以前文档的时候,无意中…...
东莞网站建设方案/seo 资料包怎么获得
(1)你一般怎么建索引的?去my.cnf里配置三个配置打开慢查询日志slow_query_log1慢查询日志存储路径slow_query_log_file/var/log/mysql/log-slow-queries.logSQL执行时间大于3秒,则记录日志long_query_time3首先进行SQL优化然后遵守简历索引规则索引并非越…...
政府 网站建设自查报告/搜什么关键词能搜到好片
如果使用了Set newname for datafile 1 to ‘新数据文件路径’;修改数据文件路径在recover前,需要使用switch datafile all;修改控制文件中关于数据文件的路径run{allocate channel c1 type disk;allocate channel c2 type disk;set newname for datafile G:\ORACLE…...