usar tutorial run hub ejemplos dockers detener contenedor container como docker sudo linux-containers

tutorial - ejemplos de docker



¿Cómo usar sudo dentro de un contenedor de docker? (4)

Normalmente, los contenedores acoplables se ejecutan utilizando la raíz del usuario. Me gustaría utilizar un usuario diferente, que no es ningún problema al usar la directiva USER de docker. Pero este usuario debería poder usar sudo dentro del contenedor. Este comando falta.

Aquí hay un archivo Docker simple para este propósito:

FROM ubuntu:12.04 RUN useradd docker && echo "docker:docker" | chpasswd RUN mkdir -p /home/docker && chown -R docker:docker /home/docker USER docker CMD /bin/bash

Al ejecutar este contenedor, me conecto con el usuario ''docker''. Cuando trato de usar sudo, el comando no se encuentra. Así que traté de instalar el paquete sudo dentro de mi archivo Docker usando

RUN apt-get install sudo

Esto da como resultado No se puede ubicar el paquete sudo


Acabo de recibirlo. Como señaló regan, tuve que agregar al usuario al grupo sudoers. Pero la razón principal fue que olvidé actualizar la memoria caché de los repositorios, por lo que apt-get no pudo encontrar el paquete sudo. Está funcionando ahora. Aquí está el código completo:

FROM ubuntu:12.04 RUN apt-get update && / apt-get -y install sudo RUN useradd -m docker && echo "docker:docker" | chpasswd && adduser docker sudo USER docker CMD /bin/bash


Cuando ni sudo ni apt-get están disponibles en el contenedor, también puede saltar al contenedor en ejecución como usuario raíz usando el comando

docker exec -u root -t -i container_id /bin/bash


Las otras respuestas no funcionaron para mí. Seguí buscando y encontré una publicación de blog que cubría cómo un equipo ejecutaba un sistema no root dentro de un contenedor acoplable.

Aquí está la versión TL; DR:

RUN apt-get update RUN apt-get install sudo RUN adduser --disabled-password --gecos '''' docker RUN adduser docker sudo RUN echo ''%sudo ALL=(ALL) NOPASSWD:ALL'' >> /etc/sudoers USER docker # this is where I was running into problems with the other approaches RUN sudo apt-get update

Estaba usando FROM node:9.3 para esto, pero sospecho que otras bases de contenedores similares funcionarían también.


si quieres conectarte al contenedor e instalar algo
usando apt-get
primero como respuesta anterior de nuestro hermano "Tomáš Záluský"

docker exec -u root -t -i container_id /bin/bash

entonces intenta

EJECUTAR apt-get update o apt-get ''lo que quieras''

funcionó conmigo espero que sea útil para todos