阿里云龙蜥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
相关推荐
小p12 小时前
docker学习: 2. 构建镜像Dockerfile
docker
小p1 天前
docker学习: 1. docker基本使用
docker
崔小汤呀1 天前
Docker部署Nacos
docker·容器
缓解AI焦虑1 天前
Docker + K8s 部署大模型推理服务:资源划分与多实例调度
docker·容器
1candobetter2 天前
Docker Compose Build 与 Up 的区别:什么时候必须重建镜像
docker·容器·eureka
シ風箏2 天前
MySQL【部署 04】Docker部署 MySQL8.0.32 版本(网盘镜像及启动命令分享)
数据库·mysql·docker
BugShare2 天前
继《小爱音响》详细说下怎么部署,尤其是关于Docker部分
docker·nas·xiaomusic
小马爱打代码2 天前
Docker:完全指南从入门到精通
运维·docker·容器
SaaS_Product2 天前
从实用性与体验角度出发,OneDrive有什么替代品
云计算·saas·onedrive