国内环境非root用户的docker安装与使用

一般来说,docker的进程是具有root权限的,但是在一些需要信息保密的业务场景中,存在着不能取得root权限的docker使用需求,对于这种需求,docker给出了rootless模式的方法,以下是非root的安装方法,官方文档链接:Rootless mode | Docker Docs

安装方法分为两类包管理工具安装和二进制安装

1.二进制安装

        防火墙放行443端口(这需要root权限,也是本文唯一一个需要root权限的操作)

 sudo ufw allow 443/tcp

        执行脚本

curl -fsSL https://get.docker.com/rootless | sh

         这里需要访问dockerhub,而且即使直接运行脚本,脚本中也有使用到dockerhub的部分,建议使用魔法

        执行完成后会输出一些命令,将这些命令中带有export前缀的添加到~/.bashrc文件的最下面,例如:

export PATH=/home/你自己的名字/bin:$PATH
export DOCKER_HOST=unix:///run/user/1000/docker.sock

         而常用的配置文件如下:

docker.service     路径: ~/.config/systemd/user/docker.service

docker.sock         路径:$XDG_RUNTIME_DIR/docker.sock(这个环境变量一开始的输出会有)

daemon.json       路径:~/.config/docker/daemon.json(这个文件可能需要自己创建)

config.json          路径:~/.docker

        添加环境变量,否则告警:

export DOCKER_HOST=unix://$XDG_RUNTIME_DIR/docker.sock

         将docker作为rootless方式运行

docker context use rootless

        测试容器:

docker run -d -p 8080:80 nginx

        最后修改daemon.json文件中的registry,值得注意的是,修改完daemon.json后,重启docker需要指定--user参数,如:

systemctl --user daemon-reload
systemctl --user restart docker
systemctl --user enable docker

至此docker rootless初步配置完成,出现意料之外的bug移步troubleshooting章节Rootless mode | Docker Docs

2.包管理器安装

        安装必须包

apt-get install -y docker-ce-rootless-extras

        如果有必要可以更新包

        安装完成后在/usr/bin中可以找到文件dockerd-rootless-setuptool.sh,执行它

dockerd-rootless-setuptool.sh install

接下来回到刚刚的export接着执行就好了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值