Squidで快適Docker生活

2018.10.29

Dockerイメージを開発しているときはDocker内で何度もインストールをし直すため, そのたびに必要なパッケージのダウンロード処理が発生して時間がかかる. これを回避するためにSquidでキャッシュサーバを立てて2度目以降のリクエストに対してキャッシュされたデータを返すようにする.

Squidサーバを立ち上げる

noyuno/squid: squid on dockerclone

docker build -t squid .
docker run -it --rm squid

一方,docker-compose.ymlを使うときは,上のコマンドを入力する代わりに プロジェクトのdocker-compose.ymlに次のように書く. buildにはdocker-compose.ymlから見た相対的なパスを指定する.

version: "3"
services:
    squid:
        build: squid
        restart: always
        ports:
            - 3128:3128

そしてdocker-compose up -d squidでSquidが立ち上がる.

~/.docker/config.jsonを編集してDockerで動かすサービスに対してプロキシを通す

httpProxyにはlocalhost127.0.0.1を用いるとエラーになるので注意.

{
    "auths": {
        "https://index.docker.io/v1/": {
                "auth": ""
        }
    },
    "HttpHeaders": {
        "User-Agent": "Docker-Client/18.04.0-ce (linux)"
    },
    "proxies": {
        "default": {
            "httpProxy": "http://192.168.11.39:3128"
        }
    }
}