docker-clash笔记
Docker 笔记
一、基础命令
1. 运行容器
docker run -d \
-v /etc/sing-box:/etc/sing-box/ \
--name=sing-box \
--restart=always \
ghcr.io/sagernet/sing-box \
-D /var/lib/sing-box \
-C /etc/sing-box/ run2. 导出/导入镜像
# 导出镜像
docker save -o sing-box.docker 31aecdf46da9
docker save -o srs.docker 57c85f93e6d5
# 导入镜像
docker load -i ./sing-box.docker
docker load -i ./srs.docker
# 打标签
docker tag 31aecdf46da9 gzxhwq/sing-box:latest
docker tag 57c85f93e6d5 ossrs/srs-stack:53. 拉取镜像
docker pull docker.mirrors.ustc.edu.cn:dreamacro/clash:latest二、镜像信息
| 镜像 | 标签 | 镜像ID | 更新时间 | 大小 |
|---|---|---|---|---|
| centralx/clash | latest | ad83a41621dc | 17 months ago | 222MB |
| dreamacro/clash | latest | 09508d094ad5 | 22 months ago | 24.6MB |
三、Docker ↔ Podman 兼容操作
| 操作 | 命令 | 说明 |
|---|---|---|
| Docker → Podman 导出 | docker save -o file.tar IMAGE | 前提:使用默认格式且架构匹配 |
| Docker → Podman 导入 | podman load -i file.tar | 同上 |
| Podman → Docker 导出 | podman save -o file.tar IMAGE | 前提:架构匹配 |
| Podman → Docker 导入 | docker load -i file.tar | 同上 |
四、Clash 容器操作
1. 运行 Clash
# 使用 dreamacro/clash
docker run -d --name clash \
-v /data/clash/clash.yaml:/root/.config/clash/config.yaml \
-p 7890:7890 -p 7891:7891 -p 9090:9090 \
--network bridge dreamacro/clash
# 使用 centralx/clash
docker run -d --name clash \
-v /data/clash/clash.yaml:/root/.config/clash/config.yaml \
-p 7890:7890 -p 7891:7891 -p 9090:9090 \
centralx/clash2. 管理 Clash
# 删除容器
docker rm -f clash
# 查看端口映射
docker inspect clash | grep -i port3. 测试代理
# 测试代理连接
curl --proxy http://127.0.0.1:7890 http://www.google.com
curl --proxy http://192.168.10.185:7890 http://www.google.com4. 设置环境变量代理
# 临时设置
export http_proxy="http://192.168.10.185:7890"
export https_proxy="http://192.168.10.185:7890"
export HTTP_PROXY="http://192.168.10.185:7890"
export HTTPS_PROXY="http://192.168.10.185:7890"
# 永久生效(写入 ~/.bashrc)
source ~/.bashrc5. 进入容器并安装工具
docker exec -it clash /bin/sh
apk add curl # Alpine 系统五、Docker 代理配置
1. 配置 Docker Daemon 代理
# 创建配置目录
sudo mkdir -p /etc/systemd/system/docker.service.d
# 编辑配置文件
sudo nano /etc/systemd/system/docker.service.d/http-proxy.conf配置文件内容:
[Service]
Environment="HTTP_PROXY=http://your_username:your_password@your_proxy_address:your_proxy_port"
Environment="HTTPS_PROXY=http://your_username:your_password@your_proxy_address:your_proxy_port"
Environment="NO_PROXY=localhost,127.0.0.1"重启 Docker:
sudo systemctl daemon-reload
sudo systemctl restart docker
# 检查代理是否生效
docker info | grep -i proxy2. 命令行指定代理
# 拉取镜像时指定代理
docker pull --tlscert /path/to/cert.pem \
--tlskey /path/to/key.pem \
--proxy-server "http://your_proxy_address:port" image_name
# 示例
docker pull --proxy-server "http://192.168.10.185:7890" nocodb/nocodb3. Docker Search 使用代理
docker search --proxy-server "http://192.168.10.185:7890" ghcr.io/dingyufei615/ai-goofish:latest六、系统信息查看
# 查看系统版本
cat /etc/*-release
hostnamectl
# Debian/Ubuntu
lsb_release -a
# CentOS
cat /etc/centos-release七、Docker 镜像加速
1. 腾讯云镜像加速
Debian、CentOS 6、Fedora、openSUSE
编辑 /etc/default/docker:
DOCKER_OPTS="--registry-mirror=https://mirror.ccs.tencentyun.com"CentOS 7、Ubuntu 22.04
编辑 /etc/docker/daemon.json:
{
"registry-mirrors": [
"https://mirror.ccs.tencentyun.com"
]
}2. 使用加速镜像地址
# 原命令可能很慢
docker pull nginx:latest
# 使用毫秒镜像加速
docker pull docker.1ms.run/nginx:latest3. 配置多个镜像源
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": [
"https://docker.xuanyuan.me",
"https://docker.1ms.run",
"https://docker.m.daocloud.io"
]
}
EOF八、Git 代理配置
git clone https://github.com/dingyufei615/ai-goofish-monitor \
--config http.proxy="http://192.168.10.185:7890"九、重启服务
# 重启 systemd 和 Docker
sudo systemctl daemon-reload
sudo systemctl restart docker如果需要进一步分类或补充其他内容,可以告诉我。