Cómo instalar el editor de ficheros de texto nano en un contenedor Docker con Linux Ubuntu. Cómo ejecutar comandos en el contenedor desde el shell del equipo anfitrión y desde el propio shell del contenedor.
- Requisitos para instalar software y ejecutar comandos en un contendor Docker.
- Instalar software (nano) en contenedor con Linux Ubuntu en Docker.
- Ejecutar comandos en contenedor con Linux Ubuntu en Docker.
Requisitos para instalar software y ejecutar comandos en un contendor Docker
El único requisito es disponer de Docker instalado en el equipo anfitrión (sea Linux o Windows), como indicamos en estos artículos:
- Instalar Docker y Docker Compose en Linux Debian 11.
- Instalar Docker Desktop en Windows mi primer contenedor Hola Mundo.
Y disponer de un contenedor de una imagen de Linux Ubuntu, como indicamos en este artículo:
Para este artículo, usamos un contenedor Docker con Linux Ubunto, que contiene WordPress y PHP. En el siguiente enlace explicamos cómo montarlo:
En este caso, usaremos Docker sobre un equipo con Linux, aunque el proceso que indicamos a continuación es el mismo para equipo anfitrión de Docker con Windows.
Dado que la imagen de Linux Ubuntu de Docker oficial viene sin nano, el editor de ficheros de texto, y dado que lo necesitamos para modificar ficheros de configuración de PHP y WordPress, tendremos que instalar un editor (tampoco viene vi).
Instalar software (nano) en contenedor con Linux Ubuntu en Docker
En primer lugar, para poder instalar nano en un contenedor con una imagen de Linux Ubuntu, obtendremos el nombre del contenedor, con el comando docker (que ejecutaremos en el shell de comandos del equipo anfitrión):
1 |
docker ps |
Nos mostrará todos los contenedores actuales, en este caso, nos interesa instalar nano en el contenedor con nombre wordpres_mysql-wordpress-1, que es el que contiene PHP y WordPress.
Para instalar nano en el contenedor, desde el shell de comandos de Linux del equipo anfitrión, el que tiene Docker instalado, ejecutaremos el comando docker:
1 |
docker exec -it wordpres_mysql-wordpress-1 bash -c 'apt-get -y update && apt -y install nano' |
En unos segundos, docker ejecutará el comando de instalación de nano en el Linux del contenedor wordpres_mysql-wordpress-1, devolverá el resultado en el shell del Linux anfitrión:
Ejecutar comandos en contenedor con Linux Ubuntu en Docker
Para ejecutar comandos en el shell del equipo virtual contenedor Docker, podremos hacerlo de varias formas. Si queremos ejecutar comandos en el contenedor, desde el propio shell del anfitrión, seguiremos la sintaxis anterior. Por ejemplo, para abrir el fichero wp-config.php del equipo contenedor wordpres_mysql-wordpress-1 desde el shell del equipo anfitrión, ejecutaremos el comando docker (en el equipo anfitrión):
1 |
docker exec -it wordpres_mysql-wordpress-1 bash -c 'nano wp-config.php' |
Y veremos que nos muestra el contenido del fichero wp-config.php, así como la posibilidad de modificarlo, en el shell del equipo anfitrión, aunque el fichero pertenece al equipo contenedor Docker wordpres_mysql-wordpress-1. Cualquier cambio que hagamos en el fichero quedará reflejado en el contenedor:
Otra forma de ejecutar comandos en el contenedor Linux de Docker, es accediendo a su propio shell. Para ello, desde el shell del equipo anfitrión, para acceder al shell del contenedor wordpres_mysql-wordpress-1:
1 |
docker exec -it wordpres_mysql-wordpress-1 /bin/bash |
Una vez dentro del shell del contenedor, podremos ejecutar los comandos Linux habituales que necesitemos. Por ejemplo, para obtener datos del Linux instalado, ejecutaremos:
1 |
uname -a |
O para ver el usuario con el que hemos iniciado la sesión de shell:
1 |
whoami |
Para salir del shell del contenedor y volver al shell del anfitrión, ejecutaremos el comando:
1 |
exit |