自学内容网 自学内容网

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的版本信息。


原文地址:https://blog.csdn.net/zhengshaolin128/article/details/142433099

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!