¿Cómo puedo iniciar un contenedor de Docker desde la línea de comandos en MacOS?
En Debian Linux, puedo ejecutar los siguientes comandos para instalar Docker, iniciar un nuevo contenedor de Docker basado en la última versión de Debian y obtener una terminal dentro de ese contenedor
# instalar de forma segura docker y permitir que nuestro usuario interactúe con él
sudo apt-get install docker.io
sudo bash -c 'gpasswd -a "${SUDO_USER}" docker'
su - `whoami`
# descargar y ejecutar "de forma segura" el último contenedor de Debian
# * https://security.stackexchange.com/q/238529/213165
export DOCKER_CONTENT_TRUST=1
docker run --rm -it --entrypoint /bin/bash debian:stable-slim
En MacOS, puedo (de forma insegura) instalar Docker de la siguiente manera
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
brew install --cask docker
Pero luego obtengo errores de comando no encontrado
al intentar ejecutar un nuevo contenedor (tanto en zsh como en bash)
usuario@equipo ~ % export DOCKER_CONTENT_TRUST=1
usuario@equipo ~ % docker run --rm -it --entrypoint /bin/bash debian:stable-slim
zsh: command not found: docker
usuario@equipo ~ % bash
La shell interactiva predeterminada es ahora zsh.
Para actualizar su cuenta para usar zsh, ejecute `chsh -s /bin/zsh`.
Para más detalles, visite https://support.apple.com/kb/HT208050.
bash-3.2$ export DOCKER_CONTENT_TRUST=1
bash-3.2$ docker run --rm -it --entrypoint /bin/bash debian:stable-slim
bash: docker: command not found
bash-3.2$
Tenga en cuenta que esta es una máquina sin cabeza sin acceso a la interfaz gráfica de usuario. El único acceso proporcionado es a través de ssh (con sudo para permisos de root).
¿Cómo puedo iniciar e ingresar a un nuevo contenedor de Docker desde la línea de comandos en MacOS?
2 votos
¿Y qué instala el barril? ¿Dónde coloca los binarios? ¿Están estos binarios en tu $RUTA?
0 votos
@MarcWilson Busqué en todo el sistema de archivos (con
find
) y no puedo encontrar un ejecutable llamadodocker
en ningún lugar. De ahí esta pregunta. Imagino que hay algún paso extraño no documentado que me estoy perdiendo. Probablemente sea trivial con la interfaz gráfica, pero no tengo idea de cómo proceder solo con CLI.1 votos
Pero eso no es lo que te pregunté. ¿Qué instala el barril y dónde lo instala?
0 votos
¿Tienes una Mac Intel o ARM? Según docker.rb, deberías obtener tanto una aplicación Docker.app en /Applications como /usr/local/bin/docker al instalar el Cask. ¿Están estos archivos/directorios donde deberían estar?
0 votos
cat /proc/cpuinfo
dacat: /proc/cpuinfo: No se puede encontrar el archivo o directorio
. Pero estoy bastante seguro de que es Intel.0 votos
Tengo un directorio ubicado en
/Aplicaciones/Docker.app
. No tengo un binario ubicado en/usr/local/bin/docker
. Si tuviera que adivinar, hay alguna especie de ventana de GUI que se está mostrando que no puedo ver. ¿Quizás brew simplemente instala un instalador (GUI)? ¿O no coloca el binario en su lugar hasta que acepte un EULA? De todas maneras, necesito una solución solo CLI.0 votos
Como se mencionó en los comentarios de la pregunta ahora eliminada, intenté instalar docker a través de
brew install docker
(en lugar de cask) y ahora tengo este binario, que al ejecutar con/usr/local/Cellar/docker/20.10.17/bin/docker run hello-world
muestradocker: Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?
.0 votos
Bueno, la cuba debería instalarse en /usr/local/bin, extraño. De todos modos, ¿puedes ejecutar Docker.App?
0 votos
Puedo ejecutar
open /Applications/Docker.app
como root. Sale con código 0 inmediatamente sin producir ninguna salida.0 votos
@MichaelAltfield al mirar la página del manual para
open
veo que hay dos banderas que pueden hacer lo que necesitas:-g No llevar la aplicación al primer plano.
y-j Lanza la aplicación oculta.
¿Alguna de esas dos te ayuda?0 votos
@JoshuaSkrzypek si ejecuto
sudo open -g /Applications/Docker.app
, aún sale 0 inmediatamente sin ningún resultado. Si lo ejecuto con el argumento-j
en su lugar, sale 0 inmediatamente sin ningún resultado. Si lo ejecuto con ambos argumentos-g
y-j
, sale 0 sin ningún resultado.0 votos
@MichaelAltfield oh, espera, mi error. ¡No leí todos tus comentarios, lo siento! Investigando parece que puede que tengas que pasar por muchas dificultades para tener todos los ayudantes privilegiados en su lugar que necesitarías para ejecutar docker en mac sin hacerlo a través de la aplicación de escritorio de docker (es decir, el cask). Por cierto, echa un vistazo a este problema/comentario github.com/docker/for-mac/issues/2359#issuecomment-943131345. Veo que encontraste la documentación sobre la instalación sin cabeza, pero el control adecuado de la CLI todavía está en el roadmap: github.com/docker/roadmap/issues/172