188 lines
5.9 KiB
Markdown
Executable File
188 lines
5.9 KiB
Markdown
Executable File
[](https://circleci.com/gh/sameersbn/docker-squid) [](https://quay.io/repository/sameersbn/squid)
|
|
|
|
# sameersbn/squid:3.5.27
|
|
|
|
- [Introduction](#introduction)
|
|
- [Contributing](#contributing)
|
|
- [Issues](#issues)
|
|
- [Getting started](#getting-started)
|
|
- [Installation](#installation)
|
|
- [Quickstart](#quickstart)
|
|
- [Command-line arguments](#command-line-arguments)
|
|
- [Persistence](#persistence)
|
|
- [Configuration](#configuration)
|
|
- [Usage](#usage)
|
|
- [Logs](#logs)
|
|
- [Maintenance](#maintenance)
|
|
- [Upgrading](#upgrading)
|
|
- [Shell Access](#shell-access)
|
|
|
|
# Introduction
|
|
|
|
`Dockerfile` to create a [Docker](https://www.docker.com/) container image for [Squid proxy server](http://www.squid-cache.org/).
|
|
|
|
Squid is a caching proxy for the Web supporting HTTP, HTTPS, FTP, and more. It reduces bandwidth and improves response times by caching and reusing frequently-requested web pages. Squid has extensive access controls and makes a great server accelerator.
|
|
|
|
## Contributing
|
|
|
|
If you find this image useful here's how you can help:
|
|
|
|
- Send a pull request with your awesome features and bug fixes
|
|
- Help users resolve their [issues](../../issues?q=is%3Aopen+is%3Aissue).
|
|
- Support the development of this image with a [donation](http://www.damagehead.com/donate/)
|
|
|
|
## Issues
|
|
|
|
Before reporting your issue please try updating Docker to the latest version and check if it resolves the issue. Refer to the Docker [installation guide](https://docs.docker.com/installation) for instructions.
|
|
|
|
SELinux users should try disabling SELinux using the command `setenforce 0` to see if it resolves the issue.
|
|
|
|
If the above recommendations do not help then [report your issue](../../issues/new) along with the following information:
|
|
|
|
- Output of the `docker version` and `docker info` commands
|
|
- The `docker run` command or `docker-compose.yml` used to start the image. Mask out the sensitive bits.
|
|
- Please state if you are using [Boot2Docker](http://www.boot2docker.io), [VirtualBox](https://www.virtualbox.org), etc.
|
|
|
|
# Getting started
|
|
|
|
## Installation
|
|
|
|
Automated builds of the image are available on [Dockerhub](https://hub.docker.com/r/sameersbn/squid) and is the recommended method of installation.
|
|
|
|
> **Note**: Builds are also available on [Quay.io](https://quay.io/repository/sameersbn/squid)
|
|
|
|
```bash
|
|
docker pull sameersbn/squid:3.5.27
|
|
```
|
|
|
|
Alternatively you can build the image yourself.
|
|
|
|
```bash
|
|
docker build -t sameersbn/squid github.com/sameersbn/docker-squid
|
|
```
|
|
|
|
## Quickstart
|
|
|
|
Start Squid using:
|
|
|
|
```bash
|
|
docker run --name squid -d --restart=always \
|
|
--publish 3128:3128 \
|
|
--volume /srv/docker/squid/cache:/var/spool/squid \
|
|
sameersbn/squid:3.5.27
|
|
```
|
|
|
|
*Alternatively, you can use the sample [docker-compose.yml](docker-compose.yml) file to start the container using [Docker Compose](https://docs.docker.com/compose/)*
|
|
|
|
## Command-line arguments
|
|
|
|
You can customize the launch command of the Squid server by specifying arguments to `squid` on the `docker run` command. For example the following command prints the help menu of `squid` command:
|
|
|
|
```bash
|
|
docker run --name squid -it --rm \
|
|
--publish 3128:3128 \
|
|
--volume /srv/docker/squid/cache:/var/spool/squid \
|
|
sameersbn/squid:3.5.27 -h
|
|
```
|
|
|
|
## Persistence
|
|
|
|
For the cache to preserve its state across container shutdown and startup you should mount a volume at `/var/spool/squid`.
|
|
|
|
> *The [Quickstart](#quickstart) command already mounts a volume for persistence.*
|
|
|
|
SELinux users should update the security context of the host mountpoint so that it plays nicely with Docker:
|
|
|
|
```bash
|
|
mkdir -p /srv/docker/squid
|
|
chcon -Rt svirt_sandbox_file_t /srv/docker/squid
|
|
```
|
|
|
|
## Configuration
|
|
|
|
Squid is a full featured caching proxy server and a large number of configuration parameters. To configure Squid as per your requirements mount your custom configuration at `/etc/squid/squid.conf`.
|
|
|
|
```bash
|
|
docker run --name squid -d --restart=always \
|
|
--publish 3128:3128 \
|
|
--volume /path/to/squid.conf:/etc/squid/squid.conf \
|
|
--volume /srv/docker/squid/cache:/var/spool/squid \
|
|
sameersbn/squid:3.5.27
|
|
```
|
|
|
|
To reload the Squid configuration on a running instance you can send the `HUP` signal to the container.
|
|
|
|
```bash
|
|
docker kill -s HUP squid
|
|
```
|
|
|
|
## Usage
|
|
|
|
Configure your web browser network/connection settings to use the proxy server which is available at `172.17.0.1:3128`
|
|
|
|
If you are using Linux then you can also add the following lines to your `.bashrc` file allowing command line applications to use the proxy server for outgoing connections.
|
|
|
|
```bash
|
|
export ftp_proxy=http://172.17.0.1:3128
|
|
export http_proxy=http://172.17.0.1:3128
|
|
export https_proxy=http://172.17.0.1:3128
|
|
```
|
|
|
|
To use Squid in your Docker containers add the following line to your `Dockerfile`.
|
|
|
|
```dockerfile
|
|
ENV http_proxy=http://172.17.0.1:3128 \
|
|
https_proxy=http://172.17.0.1:3128 \
|
|
ftp_proxy=http://172.17.0.1:3128
|
|
```
|
|
|
|
## Logs
|
|
|
|
To access the Squid logs, located at `/var/log/squid/`, you can use `docker exec`. For example, if you want to tail the access logs:
|
|
|
|
```bash
|
|
docker exec -it squid tail -f /var/log/squid/access.log
|
|
```
|
|
|
|
You can also mount a volume at `/var/log/squid/` so that the logs are directly accessible on the host.
|
|
|
|
# Maintenance
|
|
|
|
## Upgrading
|
|
|
|
To upgrade to newer releases:
|
|
|
|
1. Download the updated Docker image:
|
|
|
|
```bash
|
|
docker pull sameersbn/squid:3.5.27
|
|
```
|
|
|
|
2. Stop the currently running image:
|
|
|
|
```bash
|
|
docker stop squid
|
|
```
|
|
|
|
3. Remove the stopped container
|
|
|
|
```bash
|
|
docker rm -v squid
|
|
```
|
|
|
|
4. Start the updated image
|
|
|
|
```bash
|
|
docker run -name squid -d \
|
|
[OPTIONS] \
|
|
sameersbn/squid:3.5.27
|
|
```
|
|
|
|
## Shell Access
|
|
|
|
For debugging and maintenance purposes you may want access the containers shell. If you are using Docker version `1.3.0` or higher you can access a running containers shell by starting `bash` using `docker exec`:
|
|
|
|
```bash
|
|
docker exec -it squid bash
|
|
```
|