Tag: root

将Fluentd Docker镜像作为非root用户运行

这是一个stream利的Docker镜像: https : //github.com/fluent/fluentd-docker-image 以下是Dockerfile: FROM fluent/fluentd:onbuild USER root # below RUN includes two plugins as examples # elasticsearch and record-reformer are not required # you may customize including plugins as you wish RUN apk add –update –virtual .build-deps \ sudo build-base ruby-dev \ && sudo -u fluent gem install \ fluent-plugin-elasticsearch \ fluent-plugin-record-reformer \ […]

返回非零值:错误9,同时在Docker容器中构build用户

我想在Ubuntu 14.04中build立docker容器,但我面临下面的错误…. Step 1/6 : FROM extras —> 2427883089fe Step 2/6 : ARG UID —> Running in be1df930d560 —> eeafcc0e6b56 Removing intermediate container be1df930d560 Step 3/6 : ARG UNAME —> Running in cc76b60de074 —> ac3ce9ae6bce Removing intermediate container cc76b60de074 Step 4/6 : RUN useradd -u ${UID} ${UNAME} && mkdir /home/${UNAME} && echo 'echo "___ "' […]

dynamic链接caching在Docker应用程序中被忽略

我试图在Docker容器应用程序中使用dynamic链接caching( /etc/ld.so.cache ),但应用程序没有使用caching来parsing运行时path。 在我的Dockerfile有: COPY myapp.conf /etc/ld.so.conf.d/ RUN ldconfig USER myuser 但是当我构build图像并运行应用程序时,我得到: cannot open shared object file: No such file or directory 但是,在环境中设置path: USER myuser ENV LD_LIBRARY_PATH="PATH=/path/to/my/libs:${LD_LIBRARY_PATH}" 我也可以这样testing图片: docker run –rm myimage ldconfig -v | grep mylib 它find了图书馆。 容器以非root用户身份运行,这可能与它有关。 但是,它仍然无法find共享对象: docker run –rm –user=root myimage

以非root用户身份启动容器,以root身份启动,然后降级为非root用户

我正在创build一些Docker镜像,我正在阅读其他人如何做这个。 当涉及到在容器中运行进程的用户时,我已经确定了三种一般模式: 它使用root用户进行所有操作(在根目录下的容器内部产生的进程(es))。 它使用root用户 ,做一些东西,然后降级到非root用户 (所以主进程在非root用户下运行,即使pid 1仍然是root)。 这发生在例如官方的nginx容器中: PID USER TIME COMMAND 1 root 0:00 nginx: master process nginx -g daemon off; 5 nginx 0:00 nginx: worker process PID USER TIME COMMAND 1 root 0:00 nginx: master process nginx -g daemon off; 5 nginx 0:00 nginx: worker process 它使用非root用户的一切。 我知道,一般来说,如果没有需要的话,应该避免在Docker容器中使用root用户 (虽然似乎这个build议被大量忽略,但这是其他一些主题)。 但是从安全angular度来看,第二个和第三个选项有什么不同?