将用户添加到 docker 组内
sudo usermod -aG docker $USER
设置 docker 默认存储位置
# sudo vim /etc/docker/daemon.json
{
"data-root": "/home/<user>/work/docker"
}
设置 docker 代理
docker 守护进程代理
创建一个 Drop-in snippet 内容如下:
/etc/systemd/system/docker.service.d/proxy.conf
[Service]
Environment="HTTP_PROXY=192.168.1.1:8080"
Environment="HTTPS_PROXY=192.168.1.1:8080"
Environment="NO_PROXY=localhost,127.0.0.1,.example.com"
注意: 这假定 192.168.1.1
是你的代理服务器,不要使用 127.0.0.1
.
确定配置被加载了:
sudo systemctl daemon-reload
sudo systemctl show docker --property Environment
# Environment=HTTP_PROXY=192.168.1.1:8080 HTTPS_PROXY=192.168.1.1:8080
docker 容器内代理:
在 ~/.docker/config.json
中设置。
{
"proxies":
{
"default":
{
"httpProxy": "http://proxy.example.com:8080",
"httpsProxy": "http://proxy.example.com:8080",
"noProxy": "localhost,127.0.0.1,.example.com"
}
}
}
注意,有一些服务可能需要取消代理,例如 immich,此时可能可以通过设置 env 解决。
docker 运行某个 container
docker exec -it <container_name> /bin/sh
docker 重命名镜像
首先用
docker tag <IMAGE ID> <REPOSITORY>:<TAG>
重命名镜像,再删除原来的镜像
docker rmi <REPOSITORY>:<TAG>
docker-compose 查看 log
docker-compose logs -f -t
docker build --build-arg http_proxy=<proxy> --build-arg https_proxy=<proxy> . -t <image_name>
清理
清理没用的镜像
docker image prune
它支持的子命令有:
-a, --all
: 删除所有没有用的镜像,而不仅仅是临时文件;-f, --force
:强制删除镜像文件,无需弹出提示确认;