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 | 如果你得到了提示:groupadd: group 'docker' already exists |
- 将当前用户加入到该组
1 | sudo usermod -aG docker $USER |
- 注销、重登当前用户生效权限
ps. 你也可以使用命令使分组活跃
1 | newgrp docker |
- 验证是否生效
1 | docker run hello-world |
👆 这里的命令使没有sudo的。
- 如果你得到了如下形式的错误
1 | WARNING: Error loading config file: /home/user/.docker/config.json - |
那么,你可以执行以下命令来修复:
1 | sudo chown "$USER":"$USER" /home/"$USER"/.docker -R |
使你的docker开机启动
这个,比较简单
1 | sudo systemctl enable docker.service |
如果你需要禁用自启动,只需要:
1 | sudo systemctl disable docker.service |
设置默认的日志驱动
docker提供了几种方式来存储容器运行时的日志,默认情况下,日志文件为json-file
,这个驱动提供了一个json格式的日志存储在宿主机上。
随着时间的推进,这种方式会产生非常大的日志文件,会占用机器的空间磁盘。
为了避免这种情况,建议你采取以下几种情况的一种来处理:
- 配置
json-file
日志驱动,开启log rotation
。
操作方式:
1 | vim /etc/docker/daemon.json |
设置其 max-size, max-file,可以参考:
1 | // /etc/docker/daemon.json |
- 使用形如Local File logging driver的本地日志驱动。
操作方式
1 | vim /etc/docker/daemon.json |
1 | // /etc/docker/daemon.json |
- 使用远程日志协议。
docker支持的日志协议,可以参阅:https://docs.docker.com/config/containers/logging/configure/#supported-logging-drivers
给你的docker加速
国内,推荐阿里云。操作路径大致为:
1 | 1. 登陆阿里云控制台 |
操作方式
1 | vim /etc/docker/daemon.json |
1 | // /etc/docker/daemon.json |
使加速器生效
1 | sudo systemctl daemon-reload |