首要要申请使用Amazon的EC2,具体步骤就不啰嗦了,不熟悉的同窗能够参考如下步骤(Amazon网站上有详细的在线说明)。docker
帐号注册浏览器
绑定信用卡:这个是必须过程,但不须要付费。安全
访问AWS控制台:https://console.aws.amazon.com
bash
在主WEB面板点击compute的EC2服务器
接着在EC2面板中点击Launch Instanceide
选择主机镜像网站
选择实例的类型,这里咱们选择第一个:Free tier eligible,不要选择其它的,不然致使付费ui
配置实例的细节,这里要注意的是Auto-assign Public IP参数必定要Enable,不然你的VM是没有外网IP没法远程和上网的this
添加存储,这里Amazon提示能够提高到30GB的存储,我这里用默认的就够了spa
定义实例标签
配置安全组(组里面是定义一些限制或者端口策略),这里有2个端口是要对外开放的:
- SSH协议的22端口:为了咱们远程配置与管理
- http代理服务使用的3128端口(默认)
建立密钥对并下载私钥证书
选择上面下载到本地的私钥证书,用XSHELL(Linux)或putty(Windows)进行链接
进入系统后首先安装并启动docker服务(直接使用yum命令就行)
sudo yum install docker //安装docker
sudo service docker start //启动docker后台服务
下面咱们进入正题,如何在5分钟时间内完成squid代理服务的搭建。
1、使用pull命令从docker hub 下载一个成熟的squid镜像
docker pull sameersbn/squid:latest
2、启动容器
docker run --name squid -d --restart=always --publish 3128:3128 \ --volume /srv/docker/squid/cache:/var/spool/squid3 \ sameersbn/squid:latest
3、从容器中将配置文件复制到主机(也可使用attach方式直接进入容器修改相关配置文件后再食用commit命令持久化到镜像,但从后期维护的角度不建议采用这种方式)
docker cp squid:/etc/squid3/ .
4、修改已复制到主机的配置文件(设置访问权限等),最小修改一条便可。
vi squid.conf # And finally deny all other access to this proxy http_access allow all #将这里的 deny all 修改成 allow all
5、中止并删除正在运行的容器后,采用卷绑定主机配置文件的方式再从新启动
docker stop squid docker rm squid docker run --name squid -d --restart=always --publish 3128:3128 --volume /srv/docker/squid/cache:/var/spool/squid3 --volume /home/ec2-user/squid/squid3:/etc/squid3 sameersbn/squid:latest
6、如今一个私有的http代理服务器就已经搭建好了,修改浏览器的访问设置后就能够直接使用了。
export ftp_proxy=http://{EC2云主机ip}:3128 export http_proxy=http://{EC2云主机ip}:3128 export https_proxy=http://{EC2云主机ip}:3128
其余:
A、采用退出时清除容器的方式启动:
sudo docker run --name squid --rm --publish 3128:3128 --volume /srv/docker/squid/cache:/var/spool/squid3 --volume /home/ec2-user/squid/squid3:/etc/squid3 sameersbn/squid:latest
B、查看代理访问日志:
sudo docker exec -it squid tail -f /var/log/squid3/access.log
c、访问并进入正在运行的容器
sudo docker exec -it squid bash