CentOS Stream 9部署docker,并开启API

1、安装docker

(1)安装Docker的依赖项和存储库

sudo dnf install -y dnf-plugins-core

sudo dnf config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

(2)安装Docker

sudo dnf install -y docker-ce docker-ce-cli containerd.io

(3)启动Docker服务

sudo systemctl start docker

(4)验证Docker服务的状态

sudo systemctl status docker

(5)开机启动docker

sudo systemctl enable docker

sudo systemctl is-enabled docker

2、开启Docker Remote API: unix(unix本地使用)

配置Docker Remote API:默认情况下,Docker Remote API是禁用的。为了公开API,需要修改Docker的配置文件。

(1)使用以下命令打开配置文件:

sudo vi /usr/lib/systemd/system/docker.service

(2)在配置文件中找到ExecStart一行,并在该行的末尾添加-H unix:///var/run/docker.sock。修改后的行应如下所示:

(3)重新加载Docker配置:

sudo systemctl daemon-reload

(4)重启Docker服务

sudo systemctl restart docker

3、开启Docker Remote API: tcp(tcp远程使用,tcp不安全不推荐)

(1)使用以下命令打开配置文件:

sudo vi /usr/lib/systemd/system/docker.service

(2)在配置文件中找到ExecStart一行,并在该行的末尾添加-H tcp://0.0.0.0:2375,表示监听所有IP地址的2375端口。修改后的行应如下所示:

(3)重新加载Docker配置:

sudo systemctl daemon-reload

(4)重启Docker服务

sudo systemctl restart docker

(5)验证Docker Remote API

curl http://localhost:2375/version

3、Docker Remote API:tcp&tls(远程使用,使用证书认证,远程推荐配置)

(1)使用以下命令打开配置文件:

sudo vi /usr/lib/systemd/system/docker.service

(2)在配置文件中找到ExecStart一行,并在该行的末尾添加-H -H tcp://0.0.0.0:2376,表示监听所有IP地址的2376端口。修改后的行应如下所示:

(3)使用脚本一键生成证书

新建脚本,证书生成路径/etc/docker/

vi tls.sh

脚本内容:

#创建 Docker TLS 证书   

#!/bin/bash

SERVER="0.0.0.0"  #需要修改为本机ip

PASSWORD="xxxx"

COUNTRY="CN"

STATE="guizhou"

CITY="guiyang"

ORGANIZATION="guanshanghu"

ORGANIZATIONAL_UNIT="ningan"

EMAIL="xxxx@163.com"

#临时文件夹

TEMP_DIR='/etc/docker/ca'

mkdir -p ${TEMP_DIR}

cd ${TEMP_DIR}

#生成`ca-key.pem` 文件 设置密码

openssl genrsa -aes256 -passout pass:${PASSWORD} -out ca-key.pem 4096

echo "生成ca私钥完成"

#生成 `ca.pem` 文件,设置国家、省市、组织名、邮箱

openssl req -new -x509  -passin "pass:${PASSWORD}"  -days 3650 -key ca-key.pem -sha256 -out ca.pem -subj "/C=${COUNTRY}/ST=${STATE}/L=${CITY}/O=${ORGANIZATION}/OU=${ORGANIZATIONAL_UNIT}/emailAddress=${EMAIL}"

echo "填写配置信息完成"

#生成 `server-key.pem` 文件

openssl genrsa -out server-key.pem 4096

#生成 `server.csr` 文件

openssl req -subj "/CN=${SERVER}" -sha256 -new -key server-key.pem -out server.csr

#生成配置文件 `extfile.cnf`

echo subjectAltName = IP:${SERVER},IP:0.0.0.0 > extfile.cnf

echo extendedKeyUsage = serverAuth >> extfile.cnf

#生成服务器证书,需要输入之前输入的密码

openssl x509 -req -days 3650 -sha256 -in server.csr -CA ca.pem -CAkey ca-key.pem  -passin "pass:${PASSWORD}"  \-CAcreateserial -out server-cert.pem -extfile extfile.cnf

echo "生成自签证书完成"

#添加配置,使密钥适合客户端身份验证

echo extendedKeyUsage = clientAuth >> extfile.cnf

#生成 `key.pem` 文件

openssl genrsa -out key.pem 4096

#创建`client.csr`文件

openssl req -subj '/CN=client' -new -key key.pem -out client.csr

#生成证书

openssl x509 -req -days 3650 -sha256 -in client.csr -CA ca.pem -CAkey ca-key.pem -passin "pass:${PASSWORD}" \-CAcreateserial -out cert.pem -extfile extfile.cnf

echo "生成client自签证书完成"

rm -v -f client.csr server.csr

chmod -v 0400 ca-key.pem key.pem server-key.pem

chmod -v 0444 ca.pem server-cert.pem cert.pem

echo "复制证书到指定目录"

cp server-*.pem  /etc/docker/

cp ca.pem /etc/docker/

执行tls.sh:

 sh tls.sh

(4)添加证书相关配置

sudo vi /etc/docker/daemon.json

添加上下面这部分

{

  "tls": true,

  "tlscacert": "/etc/docker/ca.pem",

  "tlscert": "/etc/docker/server-cert.pem",

  "tlskey": "/etc/docker/server-key.pem",

  "tlsverify": true

}

(5)重载配置、重启服务

systemctl daemon-reload

systemctl restart docker

(6)验证

docker --tlsverify --tlscacert=/etc/docker/ca/ca.pem --tlscert=/etc/docker/ca/cert.pem --tlskey=/etc/docker/ca/key.pem -H=0.0.0.0:2376 version

4、安装二进制docker-compose(可选)

(1)下载docker-compose二进制文件:在Docker官方GitHub仓库的releases页面上,你可以找到docker-compose的可执行文件。使用以下命令下载最新版本的docker-compose:

sudo curl -L "https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

(2)授予执行权限:下载完成后,为docker-compose二进制文件授予执行权限:

sudo chmod +x /usr/local/bin/docker-compose

(3)验证安装:运行以下命令验证docker-compose是否成功安装:

docker-compose --version

 

如果安装成功,你应该能够看到docker-compose的版本信息。

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

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

相关文章

网站建设中,网站设计的未来发展趋势是什么

网站建设中,网站设计的未来发展趋势是多方面的,涵盖了技术革新、用户体验优化以及市场需求变化等多个维度。以下是对网站设计未来发展趋势的详细预测: 移动优先与响应式设计:随着移动设备的普及,未来的网站设计将更加注…

从零开始:在VSCode中打造完美的C++开发环境

在现代软件开发中,选择一个合适的集成开发环境 (IDE) 至关重要,它不仅能够提高工作效率,还能让编程变得更加轻松愉快。VSCode 凭借其轻量化、高度扩展性以及强大的插件生态,已成为众多开发者的首选。然而,要在 VSCode …

[Redis][Set]详细讲解

目录 0.前言1.常用命令1.SADD2.SMEMBERS3.SISMEMBER4.SCARD5.SPOP6.SMOVE7.SREM 2.集合间操作0.是什么?1.SINTER2.SINTERSTORE3.SUNION4.SUNIONSTORE5.SDIFF6.SDIFFSTORE 3.内部编码1.intset(整数集合)2.hashtable(哈希表) 4.使用场景 0.前言 集合类型也是保存多个字…

ReKep——李飞飞团队提出的让机器人具备空间智能:基于视觉语言模型GPT-4o和关系关键点约束

前言 由于工厂、车厂的任务需求场景非常明确,加之自今年年初以来,我司在机器人这个方向的持续大力度投入(包括南京、长沙两地机器人开发团队的先后组建),使得近期我司七月接到了不少来自车厂/工厂的订单,比如其中的三个例子&…

数据结构与算法-18算法专向(hash)

话题引入&#xff1a; 给你N&#xff08;1<N<10&#xff09;个自然数,每个数的范围为&#xff08;1~10000000000&#xff09;。现在让你以最快的速度判断某一个数是否在这N个数内&#xff0c;不得使用已经封装好的类&#xff0c;该如何实现。 A[] new int[N1]&#xff…

芝士AI一次过!开题报告通用模板,可直接套用!

在正式写开题报告之前&#xff0c;需要搞清楚以下几个问题。 ①你选择这个论文选题的理由是什么&#xff1f;&#xff08;选题背景&#xff09; ②你打算去研究什么&#xff1f;解决什么问题&#xff1f;&#xff08;研究内容&#xff09; ③该选题目前有哪些研究&#xff0…

新峰商城之订单(二):订单生成

在订单确认页面处理完毕后&#xff0c;此时用户单击“提交订单”按钮&#xff0c;商城系统就对应生成一笔订单数据并保存在数据库中&#xff0c;此即订单生成功能。 在单击“提交订单”按钮后&#xff0c;后端会进行一系列操作&#xff0c;包括数据查询、数据判断、数据整合等&…

构建与优化自定义进程池

1. 什么是进程池&#xff1f; 简单来说&#xff0c;进程池就是预先创建固定数量的工作进程&#xff0c;通过设计任务队列或调度算法来分配任务给空闲的进程 —— 实现“负载均衡”。 2. 进程池框架设计 枚举错误返回值&#xff1a; enum {UsageError 1,ArgError,PipeError };…

人工智能时代的学与教

疫情逐渐散去之后&#xff0c;最最吸引全球目光的应该就是ChatGPT-3了。美国政治家亨利基辛格领衔出版的新书《AI世代与我们人类的未来》(The Age of AI and Our Human Future)中举了一个例子来说明ChatGPT-3的能力。首先让ChatGPT-3阅读关于它自身能力的哲学评论之后&#xff…

【吊打面试官系列-MySQL面试题】MyISAM 表格将在哪里存储,并且还提供其存储格式?

大家好&#xff0c;我是锋哥。今天分享关于【MyISAM 表格将在哪里存储&#xff0c;并且还提供其存储格式&#xff1f;】面试题&#xff0c;希望对大家有帮助&#xff1b; MyISAM 表格将在哪里存储&#xff0c;并且还提供其存储格式&#xff1f; 每个 MyISAM 表格以三种格式存储…

240912-设置WSL中的Ollama可在局域网访问

A. 最终效果 B. 设置Ollama&#xff08;前提&#xff09; sudo vim /etc/systemd/system/ollama.service[Unit] DescriptionOllama Service Afternetwork-online.target[Service] ExecStart/usr/bin/ollama serve Userollama Groupollama Restartalways RestartSec3 Environme…

读取t x t文件生成exce

读取t x t文件生成excel package com.moka.api.custom.core.controller; import com.google.gson.Gson; import com.google.gson.reflect.TypeToken; import org.apache.poi.ss.usermodel.Row; import org.apache.poi.ss.usermodel.Sheet; import org.apache.poi.ss.usermode…

LangChain基础知识大全

LangChain基础知识大全 一、部署ChatGLM-6B1.拉取源码2.安装环境3.下载模型4.修改api.py配置5.运行api.py 二、Models组件1.LLM&#xff08;大语言模型&#xff09;2.Chat Model&#xff08;聊天模型&#xff09;3.Embedding Model&#xff08;嵌入模型&#xff09;3.1 下载中文…

基于Python的自然语言处理系列(16):TorchText + CNN + Teacher Forcing

在本篇文章中&#xff0c;我们将实现 卷积序列到序列学习模型&#xff08;Convolutional Sequence to Sequence Learning&#xff09;。与之前介绍的基于循环神经网络&#xff08;RNN&#xff09;的模型不同&#xff0c;卷积模型不依赖递归成分&#xff0c;而是通过卷积层&…

增强现实系列—Map-Relative Pose Regression for Visual Re-Localization

&#x1f31f;&#x1f31f; 欢迎来到我的技术小筑&#xff0c;一个专为技术探索者打造的交流空间。在这里&#xff0c;我们不仅分享代码的智慧&#xff0c;还探讨技术的深度与广度。无论您是资深开发者还是技术新手&#xff0c;这里都有一片属于您的天空。让我们在知识的海洋中…

基于JAVA+SpringBoot+Vue的社区智慧养老监护管理平台

基于JAVASpringBootVue的社区智慧养老监护管理平台 前言 ✌全网粉丝20W,csdn特邀作者、博客专家、CSDN[新星计划]导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ &#x1f345;文末附源码下载链接&#x1…

科研绘图系列:R语言多个AUC曲线图(multiple AUC curves)

文章目录 介绍加载R包导入数据数据预处理画图输出结果组图系统信息介绍 多个ROC曲线在同一张图上可以直观地展示和比较不同模型或方法的性能。这种图通常被称为ROC曲线图,它通过比较不同模型的ROC曲线下的面积(AUC)大小来比较模型的优劣。AUC值越大,模型的诊断或预测效果越…

前后端跨域问题及其在ThinkPHP中的解决方案

在现代Web开发中&#xff0c;前后端分离的架构越来越普遍&#xff0c;但这也带来了跨域问题。跨域指的是在一个域下的网页试图请求另一个域的资源&#xff0c;浏览器出于安全考虑会限制这种行为。本文将探讨如何在ThinkPHP中解决跨域问题。 #### 1. 什么是跨域&#xff1f; 跨…

一个皮肤科医生长痘的的自救

内服 复方锌铁钙口服液 丹参瞳胶囊 盐酸米诺环素胶囊 (每天一次) 内服 外用: 克林霉素甲硝搽剂 (泛红的痘痘) 人表皮生长因子(痘印)氢醌软膏 (点阵激光留下的色沉 早晚一次) 至少用两个月【痤疮|痘痘用药 一个皮肤科医生的自救】https://www.bilibili.com/video/BV1zu41…

算法题之每日温度

每日温度 给定一个整数数组 temperatures &#xff0c;表示每天的温度&#xff0c;返回一个数组 answer &#xff0c;其中 answer[i] 是指对于第 i 天&#xff0c;下一个更高温度出现在几天后。如果气温在这之后都不会升高&#xff0c;请在该位置用 0 来代替。 示例 1: 输入…