阿里云龙蜥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
相关推荐
INFINI Labs7 小时前
使用 Docker Compose 轻松实现 INFINI Console 离线部署与持久化管理
java·docker·eureka·devops·docker compose·console·easyserach
立早正文7 小时前
Docker从零到一部署DNMP+Redis《全程干货》
docker·容器·php
麦兜*8 小时前
多阶段构建:打造最小化的 Spring Boot Docker 镜像
java·spring boot·后端·spring cloud·docker
后端小张8 小时前
【案例实战】初探鸿蒙开放能力:从好奇到实战的技术发现之旅
分布式·华为·云计算·harmonyos·鸿蒙·鸿蒙系统·万物互联
Mr. Cao code8 小时前
实战:Docker构建Haproxy负载均衡镜像
linux·运维·ubuntu·docker·容器·负载均衡
weixin_307779139 小时前
应对不规则负载的异步ML模型服务AWS架构设计
人工智能·深度学习·机器学习·云计算·aws
任风雨9 小时前
附录L Docker命令大全
运维·docker
江湖人称小鱼哥10 小时前
Jenkins 在构建 Java 项目并操作 Docker 时 CPU 会突然飙高
java·docker·jenkins
pp-周子晗(努力赶上课程进度版)10 小时前
Docker、Kubernetes与AWS中控机是什么?
docker·容器·kubernetes·aws