當我在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' ... –