sudo , la commande la plus utile de Linux, est parfois absente de plusieurs distributions Linux, notamment les conteneurs Docker et les distributions Linux légères.
sudo est un utilitaire qui permet aux utilisateurs d'exécuter des commandes avec root accéder. C'est la commande la plus utile et elle est incluse dans presque toutes les principales distributions Linux. Oui, presque tous. Plusieurs distributions Linux, en particulier les images docker, ne fournissent pas le sudo paquet par défaut. Si vous voyez l'erreur bash: sudo: command not found cela signifie simplement que sudo n'est pas installé.
bash :sudo :commande introuvable
sudo sera suffisant. Cependant, l'installation d'un nouveau paquet nécessite l'utilisation de root capacités. sudo .
Pour Ubuntu ou ses dérivés
$ apt install sudo Pour Fedora ou ses dérivés
$ dnf install sudo Pour RHEL ou ses dérivés
$ yum install sudo Pour Arch Linux ou ses dérivés
$ pacman install sudo Pour les images Docker
Cependant, s'il n'y a pas de compte root, comme dans le cas de nombreuses images docker, cela peut ne pas être possible. root utilisateur. Dans ce cas, nous devrons créer une image personnalisée avec sudo Pre installé. Ne vous inquiétez pas, c'est facile.
Créer une image Docker personnalisée
Un Dockerfile est requis pour construire une image Docker personnalisée. Dockerfile est utilisé pour tout définir dans une certaine syntaxe, et la commande docker build est utilisée pour générer une image à partir de celle-ci.
Créer un fichier 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 Nous avons utilisé l'étiquette RUN dans la troisième partie, qui est marquée par "Installer les outils", et toute commande après RUN sera exécutée avant de générer notre image personnalisée. Ainsi, en tapant une commande ici, nous pouvons installer n'importe quel paquet que nous souhaitons. Si nous continuons à écrire des commandes, nous pouvons même faire tourner un serveur complet.
Pour plus de connaissances sur Dockerfile, reportez-vous à la documentation officielle du docker.
Enregistrez et fermez le Dockerfile. Maintenant, ouvrez la ligne de commande et accédez au répertoire contenant le Dockerfile et exécutez la commande suivante -
sudo docker build -t image-name:tag . Changez le image-name:tag avec n'importe quel nom et tag que vous souhaitez.
unable to prepare context: context must be a directory: /home/sandy/Dockerfile . Vous devez donc être dans le répertoire contenant Dockerfile et utiliser . pour spécifier le répertoire courant ou le chemin complet vers le répertoire contenant Dockerfile.
Et c'est tout. docker build commencera à construire la commande. Cela prendra quelques secondes. Une fois cela fait, notre image docker personnalisée est enregistrée dans notre cache d'image local. Nous pouvons maintenant utiliser la balise image-name:tag pour créer un conteneur Docker dans lequel sudo est préinstallé.