当前位置: 首页 > article >正文

如何在Docker中运行Squid

测试环境

VMware Rocky Linux 9.4

实现步骤

过程:写一个Dockerfile构建Squid镜像; 再写一个启动脚本start_squid.sh,在启动脚本中配置并运行Squid。

编写Dockerfile

以rockylinux9.3做基础镜像,通过yum安装Squid, 拷贝squid.conf

FROM rockylinux:9.3

WORKDIR /
RUN yum -y install procps net-tools squid
COPY squid.conf /etc/squid/squid.conf
COPY start_squid.sh /start_squid.sh
RUN chmod +x start_squid.sh

CMD ["sh", "-c", "/start_squid.sh"]

squid.conf可以在容器里装一个squid,再把/etc/squid/squid.conf拷出来,需要额外添加如下配置,从而以squid普通用户启动,否则启动会报错

cache_effective_user squid
cache_effective_group squid
cache_log /var/log/squid/cache.log
access_log /var/log/squid/access.log squid

编写启动脚本start_squid.sh

#!/bin/bash

useradd -M -s /sbin/nologin squid
mkdir -p /var/log/squid
chown -R squid:squid /var/log/squid
squid

while true ; do
    sleep 60
done

注:

  • 添加squid用户,创建squid日志目录并通过chown正确设置属主属组
  • 脚本结尾通过while死循环,防止容器退出

构建镜像

docker build -f Dockerfile -t squid:1.0 .

启动容器

cid=$(docker run -d --privileged=true --net=host --ulimit nofile=65535:65535 squid:1.0)
docker exec -it ${cid} /bin/bash

可能会遇到报错: Squid启动失败 FATAL: xcalloc: Unable to allocate 1073741816 blocks of 432 bytes!

解决方法:容器内查看ulimit -n的值为1073741816,这个值太大了,导致Squid分配内存失败。 可以调成65535, 具体做法是给docker run添加参数 --ulimit nofile=65535:65535

详细参考: https://github.com/langgenius/dify/issues/4371


http://www.kler.cn/news/359622.html

相关文章:

  • 3.Three.js程序基本框架结构和API说明
  • 微软运用欺骗性策略大规模打击网络钓鱼活动
  • 【自用】做完项目怎么使用git仓库进行代码的管理/上传/下载
  • 爬虫学习——26.JS逆向(2)
  • 安装配置sqoop(超详细)
  • 【RabbitMQ】RabbitMQ 的七种工作模式介绍
  • python+大数据+基于Spark的共享单车数据存储系统【内含源码+文档+部署教程】
  • 常见加密算法
  • .net framework 3.5sp1组件如何启动?
  • 口电气设备:认证这道坎,如何跨越才能通全球?
  • 漏洞挖掘JS构造新手向
  • 植物大战僵尸杂交版游戏分享
  • 极简版Java敏感词检测SDK
  • 预置持久化应用或者常驻应用会导致自升级不了android:persistent=”true”属性
  • openKylin系统SSH服务配置结合cpolar轻松实现开放麒麟远程连接
  • flutter assets配置加载本地图片报错
  • 提高团队执行力的五大策略
  • Ansible for Windows hosts(ansible.windows 模块介绍)
  • HiveOnSpark环境下,Spark 挂了问题排查思路
  • linux:NAPI