当我在Docker文件中包含以下命令时,出现错误。我正在尝试创建一个用于为Redis创建基础映像的docker文件,并且此命令有助于实现redis性能。在Docker文件中运行命令
RUN echo 4096 > /writable-proc/sys/net/core/somaxconn
当我尝试建立泊坞窗文件创建映像我得到的错误是:
/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的图像:
#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/
你有没有试过将它作为特权运行? http://stackoverflow.com/questions/26177059/refresh-net-core-somaxcomm-or-any-sysctl-property-for-docker-containers –
尝试运行基本映像并检查目录是/ writable-proc/sys/net/core/exsits?否则,首先在添加文件和文本之前创建该目录。 – lvthillo
发布完整的Dockerfile可能会有所帮助。否则,这是一个猜谜游戏。我猜你在'echo'之前调用了'USER something' ... –