当前位置: 首页 > news >正文

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.mrgr.cn/news/33313.html

相关文章:

  • 038 进程线程
  • gitlab与jenkins
  • 光伏数字化全面开启,光伏的未来该何去何从?
  • c++写一个死锁并且自己解锁
  • Python自动化运维DevSecOps与安全自动化
  • wordpress站外调用指定ID分类下的推荐内容
  • 银河麒麟桌面操作系统如何添加WPS字体
  • C++速通LeetCode中等第18题-删除链表的倒数第N个结点(最简单含注释)
  • zynq中断
  • git仓库服务器端损坏如何用本地code重新部署
  • 一次使用threading.Thread来实现Pytorch多个模型并发运行的失败案例
  • 罗德岛战记游戏源码(客户端+服务端+数据库+全套源码)游戏大小9.41G
  • 探秘 Web Bluetooth API:连接蓝牙设备的新利器
  • openEuler系统安装内网穿透工具实现其他设备公网环境远程ssh连接
  • GS-SLAM论文阅读笔记--TAMBRIDGE
  • Redis数据结构之list列表
  • 一款前后端分离CRM客户关系管理系统,支持客户,商机,线索,合同,发票,审核,商品等功能(附源码)
  • 基于redis的HyperLogLog数据结构实现的布隆过滤器在信息流中历史数据的应用
  • html 几行的空间分成3个区域
  • 【机器学习】--- 决策树与随机森林
  • Cisco 基础网络汇总
  • django+vue
  • MySQL高阶1917-Leetcodify好友推荐
  • [图解]静态关系和动态关系
  • 使用GPU 加速 Polars:高效解决大规模数据问题
  • js之遍历方法