Docker配置
Docker自启动
执行以下命令可开启Docker自启动
systemctl enable docker
执行以下命令可关闭Docker自启动
systemctl disable docker
Docker镜像加速
下载镜像时,默认会从https://hub.docker.com/拉取,有时候会出现拉取速度过慢的情况,可以通过配置其他源地址来加速下载。
科大镜像:https://docker.mirrors.ustc.edu.cn/
网易镜像: http://hub-mirror.c.163.com/
Docker中国区官方镜像 https://registry.docker-cn.com
阿里镜像源地址获取(需要认证)
手动设置
执行以下命令
1 将国内镜像源地址写入daemon.json文件
tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["http://hub-mirror.c.163.com", "https://registry.docker-cn.com"]
}
EOF
2 刷新配置
systemctl daemon-reload
systemctl restart docker
docker info
出现以下提示则说明设置成功
脚本设置(推荐)
执行以下命令
curl -sSL https://get.daocloud.io/daotools/set_mirror.sh | sh -s http://f1361db2.m.daocloud.io
以非 root 用户身份管理 Docker(Rootless mode)
默认情况下,非 root 用户无法运行 Docker 。这也埋下了安全隐患,使用root权限启用Docker服务时,外部可针对Docker守护程序或运行中的容器的漏洞间接获取到root权限,在 V19.03 中实验性引入Rootless mode用于缓解守护程序和容器运行时中的潜在漏洞。V20.10 正式使用。
先决条件
1 主机上必须安装 newuidmap newgidmap uidmap(大多数Linux发行版上都默认安装,未安装执行以下命令即可)。
sudo sh -x
curl -o /etc/yum.repos.d/vbatts-shadow-utils-newxidmap-epel-7.repo https://copr.fedorainfracloud.org/coprs/vbatts/shadow-utils-newxidmap/repo/epel-7/vbatts-shadow-utils-newxidmap-epel-7.repo
yum install -y shadow-utils46-newxidmap
2 不能使用root用户安装Rootless mode
groupadd dockerRootless
useradd dockerRootlessUser -g dockerRootless
passwd dockerRootlessUser
3 文件/etc/subuid及/etc/subgid中至少应包含65536 个从属 UID/GID。
cat /etc/subuid
cat /etc/subgid
如下图所示
4 搭建Docker Rootless安装环境
Docker Rootless对Linux不同的开发版都有不同的安装需求。这里以centos7为例。
执行以下命令即可
cat <<EOT >/etc/sysctl.conf
user.max_user_namespaces = 28633
EOT
sysctl --system
安装Docker Rootless
1 命令安装
Rootless mode安装程序一般位于/usr/bin/dockerd-rootless-setuptool.sh(Docker 20.10 更高版本)
执行以下命令
su dockerRootlessUser
/usr/bin/dockerd-rootless-setuptool.sh install
2 脚本安装(推荐)
执行以下命令
curl -sSL https://get.docker.com/rootless | sh
配置
安装完成提示信息中出现了一些警告,主要意思就是让我们把下面几个变量添加到~/.bashrc中
修改配置
vim ~/.bashrc
需要写入的变量信息
export XDG_RUNTIME_DIR=/home/dockerRootlessUser/.docker/run
export PATH=/home/dockerRootlessUser/bin:$PATH
export DOCKER_HOST=unix:///home/dockerRootlessUser/.docker/run/docker.sock
刷新配置
source ~/.bashrc
非root运行的容器ping其他节点时,会报缺乏权限,可通过执行以下命令开启
$ sudo sh -c "echo 0 2147483647 > /proc/sys/net/ipv4/ping_group_range"
启动
由于当前操作系统的存储驱动是overlay2,运行时会报 overlay is not supported for Rootless with SELinux storage-driver=overlay2错误,下图为官网支持的存储引擎。
测试阶段引擎改用vfs即可
启动docker
dockerd-rootless.sh --experimental --storage-driver vfs