【发布时间】:2017-10-03 18:27:15
【问题描述】:
当我在 Docker 文件中包含以下命令时,出现错误。我正在尝试创建一个 docker 文件来为 Redis 创建我的基础映像,并且此命令有助于提高 redis 性能。
RUN echo 4096 > /writable-proc/sys/net/core/somaxconn
当我尝试构建 docker 文件以创建图像时遇到的错误是:
/bin/sh: 1: cannot create /writable-proc/sys/net/core/somaxconn: Directory nonexistent
关于如何运行此命令的任何建议?我实际上想在我的 Dockerfile 中运行以下命令:
RUN echo 4096 > /writable-proc/sys/net/core/somaxconn
RUN echo 'vm.overcommit_memory = 1' >> /etc/sysctl.conf
RUN echo never > /sys/kernel/mm/transparent_hugepage/enabled
以下是我的 Redis 映像的整个 Docker 文件:
#Download base image ubuntu 16.04
FROM ubuntu:14.04
MAINTAINER George Chilumbu
ENV HOME /root
ENV DEBIAN_FRONTEND noninteractive
#ENV /writable-proc/sys/net/core/somaxconn /proc:/writable-proc
# Set the working directory to /app
WORKDIR ~/
# Redis Cache Server Tuning
RUN mkdir -p /writable-proc/sys/net/core/somaxconn
RUN echo 4096 > /writable-proc/sys/net/core/somaxconn
#RUN echo 'vm.overcommit_memory = 1' >> /etc/sysctl.conf
#RUN echo never > /sys/kernel/mm/transparent_hugepage/enabled
# Install some necessary software/tools
RUN apt-get update && apt-get install -y \
wget \
vim \
unzip \
inetutils-ping \
inetutils-tools \
net-tools \
dnsutils \
software-properties-common \
python-software-properties \
ntp \
rsyslog \
curl
RUN add-apt-repository ppa:gaod/redis-server \
&& apt-get update \
&& apt-get install -y redis-server \
redis-sentinel \
&& rm /etc/redis/redis.conf \
&& rm /etc/redis/sentinel.conf
RUN mkdir -p /opt/redis/redis_dump
RUN chown redis:redis -R /opt/redis/redis_dump/
【问题讨论】:
-
您是否尝试过以特权身份运行它? stackoverflow.com/questions/26177059/…
-
尝试运行基础镜像并检查目录 /writable-proc/sys/net/core/ 是否存在?否则,在添加文件和文本之前首先创建该目录。
-
发布完整的 Dockerfile 可能会有所帮助。否则就是猜谜游戏。我猜你之前打电话给
USER somethingecho... -
我已经添加了我的整个 Dockerfile。
标签: docker redis dockerfile