Linux 的安装后步骤

这里的操作都是建议性居多,但是吧,还是非常推荐你整一番。

使用非root用户管理docker

Docker daemon 是和Unix socket绑定的,而不是一个TCP端口。默认情况下,Unix socket是被root用户所持有,其他程序如果想访问它,只能透过sudo。并且Docker daemon始终会以root用户在运行。

如果你不想使用sudo执行docker命令,你可以创建一个名为docker的Unix用户组,并且将用户添加到该组。当docker daemon启动,它会创建一个Unix socket,并且位于docker分组的用户,可以访问该socket。当然,有一些发型版本的操作系统在通过包管理器安装docker时会自动创建这个group,此时你就无需手工创建这个group了。

注意

docker分组,会赋予用户root级别的权限。需要了解更多,请阅读:https://docs.docker.com/engine/security/#docker-daemon-attack-surface

笔记

如果你想使用非root权限执行docker,你可以尝试使用rootless mode,细节请阅读:https://docs.docker.com/engine/security/rootless/

步骤

  • 创建一个docker用户组
1
sudo groupadd docker
1
2
如果你得到了提示:groupadd: group 'docker' already exists
那么,就表示,你的系统已经给你创建好了这个组。无需重复添加。
  • 将当前用户加入到该组
1
sudo usermod -aG docker $USER
  • 注销、重登当前用户生效权限

ps. 你也可以使用命令使分组活跃

1
newgrp docker
  • 验证是否生效
1
docker run hello-world

👆 这里的命令使没有sudo的。

  • 如果你得到了如下形式的错误
1
2
WARNING: Error loading config file: /home/user/.docker/config.json -
stat /home/user/.docker/config.json: permission denied

那么,你可以执行以下命令来修复:

1
2
sudo chown "$USER":"$USER" /home/"$USER"/.docker -R
sudo chmod g+rwx "$HOME/.docker" -R

使你的docker开机启动

这个,比较简单

1
2
sudo systemctl enable docker.service
sudo systemctl enable containerd.service

如果你需要禁用自启动,只需要:

1
2
sudo systemctl disable docker.service
sudo systemctl disable containerd.service

设置默认的日志驱动

docker提供了几种方式来存储容器运行时的日志,默认情况下,日志文件为json-file,这个驱动提供了一个json格式的日志存储在宿主机上。
随着时间的推进,这种方式会产生非常大的日志文件,会占用机器的空间磁盘。

为了避免这种情况,建议你采取以下几种情况的一种来处理:

  • 配置json-file日志驱动,开启 log rotation

操作方式:

1
> vim /etc/docker/daemon.json

设置其 max-size, max-file,可以参考:

1
2
3
4
5
6
7
8
// /etc/docker/daemon.json
{
"log-driver": "json-file",
"log-opts": {
"max-size": "5m",
"max-file": "3"
}
}
  • 使用形如Local File logging driver的本地日志驱动。

操作方式

1
> vim /etc/docker/daemon.json
1
2
3
4
5
6
7
8
// /etc/docker/daemon.json
{
"log-driver": "local",
"log-opts": {
"max-size": "10m",
"max-file": "3"
}
}
  • 使用远程日志协议。

docker支持的日志协议,可以参阅:https://docs.docker.com/config/containers/logging/configure/#supported-logging-drivers

给你的docker加速

国内,推荐阿里云。操作路径大致为:

1
2
3
4
5
1. 登陆阿里云控制台
2. 访问容器镜像服务
3. 镜像工具 - 镜像加速器
4. 找到你的加速器地址
5. 写入到你的`daemon.json`

操作方式

1
> vim /etc/docker/daemon.json
1
2
3
4
// /etc/docker/daemon.json
{
"registry-mirrors": ["https://你的镜像识别符.mirror.aliyuncs.com"]
}

使加速器生效

1
2
> sudo systemctl daemon-reload
> sudo systemctl restart docker