sudo
, el comando más útil de Linux, ocasionalmente falta en varias distribuciones de Linux, sobre todo en contenedores docker y distribuciones ligeras de Linux.
sudo
es una utilidad que permite a los usuarios ejecutar comandos con root
acceso. Es el comando más útil y está incluido en casi todas las principales distribuciones de Linux. Sí, casi todos. Varias distribuciones de Linux, en particular las imágenes de la ventana acoplable, no incluyen el sudo
paquete por defecto. Si ve el error bash: sudo: command not found
simplemente significa que sudo
no está instalado.
bash:sudo:comando no encontrado
sudo
será suficiente. Sin embargo, la instalación de un nuevo paquete requiere el uso de root
capacidades. sudo
.
Para Ubuntu o sus derivados
$ apt install sudo
Para Fedora o sus derivados
$ dnf install sudo
Para RHEL o sus derivados
$ yum install sudo
Para Arch Linux o sus derivados
$ pacman install sudo
Para imágenes Docker
Sin embargo, si no hay una cuenta raíz, como en el caso de numerosas imágenes acoplables, es posible que esto no sea posible. root
usuario. En ese caso, tendremos que crear una imagen personalizada con sudo
pre instalado. No te preocupes, es fácil.
Crear una imagen Docker personalizada
Se requiere un Dockerfile para construir una imagen acoplable personalizada. Dockerfile se usa para definir todo en una determinada sintaxis, y el comando de compilación docker se usa para generar una imagen a partir de él.
Crear archivo Docker
touch Dockerfile
nano Dockerfile or gedit Dockerfile
# This is the base image we will use to create our custom docker image
FROM ubuntu:latest
#
# the maintainer of an image
LABEL maintainer="[email protected]"
#
# Install the tools (sudo)
RUN apt-get update && apt-get upgrade -y && apt install sudo tasksel -y
Usamos la etiqueta EJECUTAR en la tercera parte, que está marcada con "Instalar las herramientas", y cualquier comando después de EJECUTAR se ejecutará antes de generar nuestra imagen personalizada. Entonces, al escribir un comando aquí, podemos instalar cualquier paquete que deseemos. Si seguimos escribiendo comandos, incluso podemos activar un servidor completo.
Para obtener más información sobre Dockerfile, consulte la documentación oficial de Docker.
Guarde y cierre el Dockerfile. Ahora, abra la línea de comando y navegue hasta el directorio que contiene el Dockerfile y ejecute el siguiente comando:
sudo docker build -t image-name:tag .
Cambiar el nombre de la imagen:etiqueta con el nombre y la etiqueta que desees.
unable to prepare context: context must be a directory: /home/sandy/Dockerfile
. Por lo tanto, debe estar dentro del directorio que contiene Dockerfile y usar . para especificar el directorio actual o la ruta completa al directorio que contiene Dockerfile.
Y eso es. docker build
comenzará a construir el comando. Tomará unos segundos. Una vez hecho esto, nuestra imagen acoplable personalizada se guarda en nuestra caché de imágenes local. Ahora podemos usar image-name:tag para crear un contenedor docker que tenga sudo preinstalado.