阿里云龙蜥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
相关推荐
liu****40 分钟前
2.深入浅出理解虚拟化与容器化(含Docker实操全解析)
运维·c++·docker·容器·虚拟化技术
logocode_li2 小时前
OCI/CRI 双标准下:从 dockerd 到 containerd 的 K8s 运行时迭代史
docker·云原生·容器·k8s
_运维那些事儿13 小时前
VM环境的CI/CD
linux·运维·网络·阿里云·ci/cd·docker·云计算
lpruoyu16 小时前
【Docker进阶-05】Docker网络
网络·docker·容器
人间打气筒(Ada)16 小时前
k8s:CNI网络插件flannel与calico
linux·云原生·容器·kubernetes·云计算·k8s
三块钱079418 小时前
群晖docker部署Mattermost,对接openclaw
运维·docker·容器
小白考证进阶中19 小时前
阿里云ACA热门科目有哪些?考什么内容?
阿里云·阿里云认证·云计算运维·阿里云aca证书·阿里云aca认证·阿里云aca·aca证书
苦逼IT运维20 小时前
从 0 到 1 理解 Kubernetes:一次“破坏式”学习实践(一)
linux·学习·docker·容器·kubernetes
萧曵 丶21 小时前
Docker 面试题
运维·docker·容器
为什么不问问神奇的海螺呢丶21 小时前
n9e categraf docker 监控配置
运维·docker·容器