Manjaro 中使用 Docker
1. 安装
1.1 安装启动
安装
sudo pacman -S docker
启动
sudo systemctl start docker.service
开机自启动
sudo systemctl enable docker.service
1.2 用户配置
启动后会发现 docker 命令无法执行,这是因为Docker 默认只能通过 root 权限执行操作
将用户添加到 docker 用户组
sudo usermod -aG docker jphao
2. 设置
2.1 镜像仓库
打开或创建 /etc/docker/daemon.json
sudo touch /etc/docker/daemon.json kate /etc/docker/daemon.json
在文件中添加镜像
{ "registry-mirrors": [ "https://registry.docker-cn.com", "https://dockerhub.azk8s.cn" ] }
重启服务
sudo systemctl daemon-reload sudo systemctl restart docker
查看是否添加成功
docker info
2.2 系统代理
设置完镜像仓库后,拉取仍然很慢,尽管 docker info 显示已经成功设置,但很明显并没有起作用,此时只能通过另一种方法:clash + 代理 了
dockerd 代理
- 拉取镜像时,由守护进程 dockerd 执行,此环境的代理配置
# 创建配置文件 sudo mkdir -p /etc/systemd/system/docker.service.d sudo touch /etc/systemd/system/docker.service.d/proxy.conf # 打开配置文件 kate /etc/systemd/system/docker.service.d/proxy.conf
- 在文件中添加以下内容
[Service] Environment="HTTP_PROXY=http://127.0.0.1:7890/" Environment="HTTPS_PROXY=http://127.0.0.1:7890/" Environment="NO_PROXY=localhost,127.0.0.1/8, ::1"
- 重启服务
此时再拉取镜像,速度已经很快了sudo systemctl daemon-reload sudo systemctl restart docker.service
- 拉取镜像时,由守护进程 dockerd 执行,此环境的代理配置
container 代理
- 容器运行阶段若要设置代理,则要通过 ~/.docker/config.json 文件进行配置,详见官网
- 打开 ~/.docker/config.json 文件,添加以下内容
这里要用 172.17.0.1,因为容器通过docker0网桥访问宿主机,127.0.0.1其实是容器内部{ "proxies": { "default": { "httpProxy": "http://172.17.0.1:7890", "httpsProxy": "http://172.17.0.1:7890", "noProxy": "localhost,127.0.0.1/8, ::1" } } }
- 重启服务(同上)