阿里云龙蜥8系统安装Docker详细教程

一、系统准备

bash 复制代码
# 更新系统软件包
sudo yum update -y

二、安装Docker

步骤1:安装必要依赖包

bash 复制代码
sudo yum install -y yum-utils device-mapper-persistent-data lvm2

步骤2:添加Docker软件源

bash 复制代码
# 使用阿里云镜像源(推荐)
sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

# 或者使用官方源
# sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

步骤3:解决冲突问题

由于龙蜥系统默认安装了podman,与Docker存在冲突,需要先卸载冲突包:

bash 复制代码
# 卸载冲突的软件包
sudo yum erase podman buildah --allowerasing

步骤4:安装Docker

bash 复制代码
# 安装最新版本Docker
sudo yum install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin --allowerasing

步骤5:启动Docker服务

bash 复制代码
# 启动Docker服务
sudo systemctl start docker

# 设置开机自启
sudo systemctl enable docker

步骤6:配置镜像加速器

  1. 登录阿里云控制台
  2. 进入"容器镜像服务" → "镜像工具" → "镜像加速器"
  3. 复制专属的加速器地址

三、制作ca证书

步骤1:首先创建一个目录用于存储生成的证书和秘钥

bash 复制代码
mkdir /home/docker-ca & cd /home/docker-ca

步骤2:创建CA证书私钥,期间需要输入两次用户名和密码,生成文件为ca-key.pem

bash 复制代码
openssl genrsa -aes256 -out ca-key.pem 4096

密码根据自己情况输入就行,比如我输入都是123456。

步骤3:根据私钥创建CA证书,期间需要输入上一步设置的私钥密码,生成文件为ca.pem

bash 复制代码
openssl req -new -x509 -days 365 -key ca-key.pem \
-sha256 -subj "/CN=*" -out ca.pem

步骤4:创建服务端私钥,生成文件为server-key.pem

bash 复制代码
openssl genrsa -out server-key.pem 4096

步骤5:创建服务端证书签名请求文件,用于CA证书给服务端证书签名,生成文件server.csr

bash 复制代码
openssl req -subj "/CN=*" -sha256 -new \
-key server-key.pem -out server.csr

步骤6:创建CA证书签名好的服务端证书,期间需要输入CA证书私钥密码,生成文件为server-cert.pem

bash 复制代码
openssl x509 -req -days 365 -sha256 -in server.csr \
-CA ca.pem -CAkey ca-key.pem -CAcreateserial -out server-cert.pem

步骤7:创建客户端私钥,生成文件为key.pem

bash 复制代码
openssl genrsa -out key.pem 4096

步骤8:创建客户端证书签名请求文件,用于CA证书给客户证书签名,生成文件client.csr

bash 复制代码
openssl req -subj "/CN=client" -new -key key.pem -out client.csr

步骤9:为了让秘钥适合客户端认证,创建一个扩展配置文件extfile-client.cnf

bash 复制代码
echo extendedKeyUsage = clientAuth > extfile-client.cnf

步骤10:创建CA证书签名好的客户端证书,期间需要输入CA证书私钥密码,生成文件为cert.pem

bash 复制代码
openssl x509 -req -days 365 -sha256 -in client.csr \
-CA ca.pem -CAkey ca-key.pem -CAcreateserial \
-out cert.pem -extfile extfile-client.cnf

步骤11:删除创建过程中多余的文件

bash 复制代码
rm -rf ca.srl server.csr client.csr extfile-client.cnf

最终生成文件如下,有了它们我们就可以进行基于TLS的安全访问了

bash 复制代码
ca.pem CA证书
ca-key.pem CA证书私钥
server-cert.pem 服务端证书
server-key.pem 服务端证书私钥
cert.pem 客户端证书
key.pem 客户端证书私钥

四、配置docker支持TLS

步骤1:编辑docker服务启动文件

bash 复制代码
systemctl edit docker.service

步骤2:在原来的基础上往后添加启动参数

bash 复制代码
[Service]
ExecStart=
ExecStart=/usr/bin/dockerd -H fd:// -H tcp://0.0.0.0:2375 --containerd=/run/containerd/containerd.sock --tlsverify --tlscacert=/home/docker-ca/ca.pem --tlscert=/home/docker-ca/server-cert.pem --tlskey=/home/docker-ca/server-key.pem

步骤3:然后保存文件,执行下面命令重新加载systemctl配置。

bash 复制代码
systemctl daemon-reload

步骤4:重启Docker容器

bash 复制代码
systemctl restart docker
相关推荐
Ramboooooooo1 天前
SkyWalking-10.4.0 Docker + Nacos + Elasticsearch 生产级部署手册
elasticsearch·docker·skywalking
修罗王2 天前
Linux Docker 服务管理与排查实战指南(新手速查版)
运维·docker
酷可达拉斯2 天前
Linux操作系统-升级OpenSSH修复漏洞
linux·运维·服务器·云计算
初禾w-w2 天前
阿里云开源 UModel 并发起 USS 倡议:构建企业级通用语义标准,重塑 AI 交互底座
人工智能·阿里云·开源·企业ai·对象图语义·语义割裂
张龙6872 天前
Docker 镜像瘦身实战:从 1.2GB 到 128MB,我踩过的 7 个坑和一套可复制的方法论
运维·后端·docker
杨浦老苏2 天前
开源堡垒机 Warpgate:一个容器搞定 SSH、MySQL 和 Web 访问
运维·docker·ssh·堡垒机·群晖
ERD Online2 天前
docker-compose 一键部署的 MIT 开源数据库建模平台
数据库·docker·开源
三言老师2 天前
CentOS7.9 + Kubernetes 1.18.20 -清理所有 docker / containerd 残留
docker·容器·kubernetes
circuitsosk2 天前
从Docker到Kubernetes:AI应用服务化与弹性伸缩的落地实践
人工智能·docker·kubernetes·ai应用部署
AAA@峥2 天前
K8s 配置管理实战:ConfigMap 与 Secret 完整使用指南
kubernetes·云计算