Docker
在线安装(官方脚本)
官方脚本支持的发行版有限,常见的 Debian/Ubuntu,红帽系仅有 RHEL/CentOS。
docker-ce
sudo apt insatll curl
###下载官方脚本
sudo curl -fsSL https://get.docker.com -o get-docker.sh
###阿里云源
sudo DOWNLOAD_URL=https://mirrors.aliyun.com/docker-ce sh get-docker.sh
###ustc源自动安装(不支持过时的系统)
sudo DOWNLOAD_URL=https://mirrors.ustc.edu.cn/docker-ce sh get-docker.sh
docker-compose
在线安装 docker-ce 的脚本已包含,一般情况无需额外安装。
手动安装(阿里云源)
适用于 Rocky Linux。可参考阿里云官方文档:https://help.aliyun.com/zh/ecs/use-cases/install-and-use-docker-on-a-linux-ecs-instance。
###添加源:官方
#sudo dnf config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
###添加源:阿里云
sudo dnf config-manager --add-repo=https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
###安装
sudo dnf -y install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
###启动
sudo systemctl start docker
sudo systemctl enable docker
开启远程 API
配置(手动)
#### 打开docker的systemd服务注册文件
sudo nano /lib/systemd/system/docker.service
#### 找到[Service]下面的(修改前)
ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock
#### 改为如下(修改后)
ExecStart=/usr/bin/dockerd -H fd:// -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock --containerd=/run/containerd/containerd.sock
sudo systemctl daemon-reload # 重新加载守护进程配置
sudo systemctl restart docker.service # 重启 docker 服务
Shell 脚本(自动化)
每次使用包管理器升级 docker 后,配置都会重置,需要重新添加。这里提供一个 Shell 脚本用于定时作业自动化执行,减少繁琐的手动配置。
Shell 脚本内容如下:
if test -z "$(cat /usr/lib/systemd/system/docker.service | grep 2375)"; #判断是否不存在关键字2375
then
echo "不存在关键字2375,执行自动添加。"
sudo sed -i 's#ExecStart=.*#ExecStart=/usr/bin/dockerd -H fd:// -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock --containerd=/run/containerd/containerd.sock#' /usr/lib/systemd/system/docker.service
sudo systemctl daemon-reload # 重新加载守护进程配置
sudo systemctl restart docker.service # 重启 docker 服务
echo "不存在关键字2375,自动添加、重启服务完成。"
else
echo "存在关键字2375,结束。"
fi
这里使用 1Panel 的计划任务功能实现定时作业,如下图:OS_UPDATE
为每月一次的自动更新系统,ENABLE_DOCKER_API
放在其之后执行。
添加私有仓库(http)
直接docker login XXX
登录私有仓库会报错:
dsf@jump-server:~# docker login reg.proxy.onehat.cn
Username: admin
Password:
Error response from daemon: Get "https://reg.proxy.onehat.cn/v2/": remote error: tls: unrecognized name
需要修改配置文件,添加可信仓库insecure-registries
:
/etc/docker/daemon.json
{
"exec-opts": [
"native.cgroupdriver=systemd"
],
"registry-mirrors": [
"https://dockerproxy.com",
"https://docker.mirrors.sjtug.sjtu.edu.cn"
],
"insecure-registries": [
"reg.proxy.onehat.cn"
]
}
修改完成后重启 docker 服务生效。