【Centos8 环境下 X86 版本 docker-29.1.3 的安装配置】

Centos8 环境下 X86 版本 docker-29.1.3 的安装配置

注意看我的标题!!!!我这是针对 X86 版本的 docker-29.1.3 离线安装,千万注意IP地址改为自己的

一、下载离线安装包

1、下载

docker-29.1.3 下载地址

2、将下载后的文件上传到 /usr/local 文件夹下

  • 使用 windows Terminal 工具。 语法: scp 【本地文件地址】 【服务器账号】@【服务器IP地址】:/usr/local/
shell 复制代码
scp D:/Downloads/docker-29.1.3.tgz root@100.110.111.108:/usr/local/

二、解压操作文件

1、远程登录服务器

shell 复制代码
ssh root@100.110.111.108

2、进入目录解压 tar.gz

shell 复制代码
cd /usr/local/
shell 复制代码
tar -zxvf docker-29.1.3.tgz  -C /usr/local/

三、安装

1、配置环境变量

修改配置文件
shell 复制代码
vim /etc/profile
按一下键盘字母i进行编辑
输入以下内容:
shell 复制代码
DOCKER_HOME=/usr/local/docker
PATH=$PATH:$DOCKER_HOME
export DOCKER_HOME
按一下esc键 退出编辑
:wq 保存退出
修改立即生效:
shell 复制代码
source /etc/profile

2、创建配置文件

创建文件夹
shell 复制代码
mkdir -p /etc/docker
创建文件
shell 复制代码
touch /etc/docker/daemon.json
编辑文件
shell 复制代码
vim /etc/docker/daemon.json
按一下键盘字母i进行编辑
输入以下内容:
复制代码
{
    "userland-proxy-path": "/usr/local/docker/docker-proxy",
	"storage-driver": "overlay2",
    "data-root": "/usr/local/docker/docker-data",
    "registry-mirrors": [
        "https://docker.1ms.run",
        "https://docker.xuanyuan.me",
		"https://docker.mirrors.tuna.tsinghua.edu.cn"
    ],
	"hosts": [
		"unix:///var/run/docker.sock",
		"tcp://0.0.0.0:6732"
	],
	"tls": true,
	"tlsverify": true,
	"tlscacert": "/usr/local/docker/cert/ca.pem",
	"tlscert": "/usr/local/docker/cert/server-cert.pem",
	"tlskey": "/usr/local/docker/cert/server-key.pem",
    "log-driver": "json-file",
    "log-opts": {
        "max-size": "10m",
        "max-file": "3"
    },
    "live-restore": true
}
  • docker-proxy 用于实现 Docker 容器端口映射时的用户态代理
  • storage-driver Docker 数据存储存动类型
  • data-root Docker 数据存储目录
  • registry-mirrors Docker 镜像仓库
  • hosts 定义 Docker 守护进程监听的端点
  • hosts.unix 本地 Unix 套接字,供同一主机上的客户端(如 docker 命令)使用
  • hosts.tcp 监听所有网络接口的 TCP 6732 端口,允许远程客户端连接
  • tls 启用 TLS(传输层安全),表示使用加密通信。
  • tlsverify 启用客户端验证,强制客户端必须提供有效证书
  • tlscacert 指定 CA 证书路径,用于验证客户端证书的签发者。该 CA 必须与客户端证书的签发 CA 一致。
  • tlscert 服务器端证书,用于向客户端证明自己的身份。
  • tlskey 服务器端私钥,用于 TLS 握手时解密数据
  • log-driver 日志存储为 JSON 文件
  • log-opts.max-size 单个日志文件最大 10MB
  • log-opts.max-file 最多保留 3 个日志文件
  • live-restore 更新daemon.json配置文件时,自动加载配置,不用重新启动Docker
按一下esc键 退出编辑
:wq 保存退出

3、测试是否安装成功

shell 复制代码
docker -v
shell 复制代码
docker version
  • 创建日志文件夹
shell 复制代码
mkdir -p /usr/local/docker/log

4、配置远程连接加密证书

创建文件
shell 复制代码
touch /usr/local/docker/create_certificate.sh
编辑文件
shell 复制代码
vim /usr/local/docker/create_certificate.sh
按一下键盘字母i进行编辑
输入以下内容:
shell 复制代码
#!/bin/sh
# 服务器IP
ip=
# 证书密码
password=
# 证书生成位置
dir=/usr/local/docker/cert
# 证书有效期10年
validity_period=10

# 将此 shell 脚本在安装 docker 的机器上执行,作用是生成 docker 远程连接加密证书
if [ ! -d "$dir" ]; then
  echo ""
  echo "$dir , not dir , will create"
  echo ""
  mkdir -p $dir
else
  echo ""
  echo "$dir , dir exist , will delete and create"
  echo ""
  rm -rf $dir
  mkdir -p $dir
fi

cd $dir || exit
# 创建根证书RSA私钥
openssl genrsa -aes256 -passout pass:"$password" -out ca-key.pem 4096
# 创建CA证书
openssl req -new -x509 -days $validity_period -key ca-key.pem -passin pass:"$password" -sha256 -out ca.pem -subj "/C=NL/ST=./L=./O=./CN=$ip"
# 创建服务端私钥
openssl genrsa -out server-key.pem 4096
# 创建服务端签名请求证书文件
openssl req -subj "/CN=$ip" -sha256 -new -key server-key.pem -out server.csr

echo subjectAltName = IP:$ip,IP:0.0.0.0 >>extfile.cnf

echo extendedKeyUsage = serverAuth >>extfile.cnf
# 创建签名生效的服务端证书文件
openssl x509 -req -days $validity_period -sha256 -in server.csr -CA ca.pem -CAkey ca-key.pem -passin "pass:$password" -CAcreateserial -out server-cert.pem -extfile extfile.cnf
# 创建客户端私钥
openssl genrsa -out key.pem 4096
# 创建客户端签名请求证书文件
openssl req -subj '/CN=client' -new -key key.pem -out client.csr

echo extendedKeyUsage = clientAuth >>extfile.cnf

echo extendedKeyUsage = clientAuth >extfile-client.cnf
# 创建签名生效的客户端证书文件
openssl x509 -req -days $validity_period -sha256 -in client.csr -CA ca.pem -CAkey ca-key.pem -passin "pass:$password" -CAcreateserial -out cert.pem -extfile extfile-client.cnf
# 删除多余文件
rm -f -v client.csr server.csr extfile.cnf extfile-client.cnf

# 防止密钥文件被误删或者损坏,改变文件权限,让它只读
chmod -v 0400 ca-key.pem key.pem server-key.pem

# 防止证书损坏,改变文件权限,让它只读
chmod -v 0444 ca.pem server-cert.pem cert.pem
按一下esc键 退出编辑
:wq 保存退出
赋权
shell 复制代码
chmod 777 /usr/local/docker/create_certificate.sh
切换文件夹
shell 复制代码
cd /usr/local/docker/
执行并生成密钥
shell 复制代码
./create_certificate.sh

5、编写 docker.service 文件加入 Linux 服务 当中并开启守护进程

shell 复制代码
vim /etc/systemd/system/docker.service
按一下键盘字母 i 进行编辑
输入以下内容:
复制代码
[Unit]
Description=Docker Application Container Engine
Documentation=https://docs.docker.com
After=network-online.target firewalld.service
Wants=network-online.target
 
[Service]
Environment="PATH=/usr/local/docker:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
Type=notify
ExecStart=/usr/local/docker/dockerd
ExecReload=/bin/kill -s HUP $MAINPID
LimitNOFILE=infinity
LimitNPROC=infinity
TimeoutStartSec=0
Delegate=yes
KillMode=process
Restart=on-failure
StartLimitBurst=3
StartLimitInterval=60s

[Install]
WantedBy=multi-user.target
按一下esc键 退出编辑
:wq 保存退出
添加文件可执行权限
Shell 复制代码
chmod +x /etc/systemd/system/docker.service
重新加载 daemon 服务
shell 复制代码
sudo systemctl daemon-reload
查看 docker.service 服务是否在服务配置中
shell 复制代码
sudo systemctl status docker.service

6、快捷启动与关闭

启动
shell 复制代码
sudo systemctl start docker.service
关闭
shell 复制代码
sudo systemctl stop docker.service
重启
shell 复制代码
sudo systemctl restart docker.service
查看状态
shell 复制代码
sudo systemctl status docker.service

6、重启计算机

shell 复制代码
shutdown -r now
远程登录服务器
shell 复制代码
ssh root@100.110.111.102
验证是否安全启动
shell 复制代码
sudo systemctl status docker.service
shell 复制代码
ss -tuln | grep 6732
shell 复制代码
docker -H 100.110.111.108:6732 ps

7、防火墙端口开放

查看防火墙状态
shell 复制代码
firewall-cmd --state
开启防火墙
shell 复制代码
systemctl start firewalld
Add 添加开放端口
shell 复制代码
firewall-cmd --permanent --zone=public --add-port=6732/tcp
Reload 重新加载
shell 复制代码
firewall-cmd --reload
检查是否生效
shell 复制代码
firewall-cmd --zone=public --query-port=6732/tcp

8、使用 IDEA 的 Docker 插件 远程链接

开黑窗口下载生成的密钥文件
  • 使用 windows Terminal 工具。 语法: scp 【服务器账号】@【服务器IP地址】:"【文件1】 【文件2】 【...】" 【本地目录】
shell 复制代码
scp root@100.110.111.108:/usr/local/docker/cert/ca.pem D:\Downloads\
shell 复制代码
scp root@100.110.111.108:/usr/local/docker/cert/cert.pem D:\Downloads\
shell 复制代码
scp root@100.110.111.108:/usr/local/docker/cert/key.pem D:\Downloads\
  • 这三个文件一定要放到同一个文件夹下
下载合适的 Docker 执行文件
配置 IDEA
相关推荐
余额瞒着我当琳11 分钟前
Linux初识:Linux的历史,计算机的发展脉络,发行版本,选购云服务器,安装Xshell,第一次连接,基础命令指南
linux·运维·服务器
时间售卖铺30 分钟前
Docker实战:一键部署轻量级容器
运维·docker·云原生
山乐1913139 分钟前
麒麟系统,安装Nginx并配置https证书
运维·nginx·https
月落汀兰1 小时前
拒绝配置写死镜像!K8s 存储卷与配置管理,PV/PVC、ConfigMap、Secret 实战避坑指南
运维·kubernetes
服务器硬件项目经理1 小时前
《超节点修仙录》· 第一卷·炼气期【第04话】 超节点 vs 普通服务器——不就是多插了几张卡吗?
运维·服务器·人工智能·嵌入式硬件·深度学习·机器学习
杨云龙UP2 小时前
MySQL 主从复制管理:暂停、恢复、清理主从关系及命令执行位置
运维·数据库·mysql·主从配置·主从命令·reset replica·清除复制
艾伦_耶格宇2 小时前
【kubernetes - 1.28版本】-10 K8S命名空间
云原生·容器·kubernetes
Android系统攻城狮2 小时前
Linux FFmpeg深度解析之avcodec_parameters_from_context调用流程与实战(十六)
linux·运维·ffmpeg·音视频进阶·ffmpeg音视频·车载音视频进阶
隔窗听雨眠2 小时前
从存储引擎到执行计划:OceanBase高效运维的调优逻辑与工程实践
运维·oceanbase
运维行者_2 小时前
供应链安全成最大风险源,企业如何构建可控的运维体系?
运维·开发语言·网络·数据库·安全·云计算·流量监控