El contenedor Docker no se inicia (docker start)
He creado el contenedor con el siguiente comando:
docker run -d -p 52022:22 basickarl/docker-git-test
Aquí están los comandos:
root@basickarl:~# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
root@basickarl:~# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
e4ac54468455 basickarl/docker-git-test:latest "/bin/bash" 7 minutes ago Exited (0) 26 seconds ago adoring_lumiere
22d7c5d83871 basickarl/docker-git-test:latest "/bin/bash" 2 hours ago Exited (127) About an hour ago thirsty_wright
root@basickarl:~# docker attach --sig-proxy=false e4
FATA[0000] You cannot attach to a stopped container, start it first
root@basickarl:~# docker start e4
e4
root@basickarl:~# docker attach --sig-proxy=false e4
FATA[0000] You cannot attach to a stopped container, start it first
root@basickarl:~#
No hay mucho que decir realmente, estoy esperando que el contenedor para iniciar y mantenerse upp. Aquí están los registros:
root@basickarl:~# docker logs e4
root@basickarl:~#
2 answers
Está intentando ejecutar bash
, un shell interactivo que requiere un tty para funcionar. Realmente no tiene sentido ejecutar esto en modo" separado " con -d
, pero puede hacerlo agregando -it
a la línea de comandos, lo que garantiza que el contenedor tenga un tty válido asociado y que stdin
permanezca conectado:
docker run -it -d -p 52022:22 basickarl/docker-git-test
Normalmente ejecutaría algún tipo de proceso no interactivo de larga duración (como sshd
, o un servidor web, o un servidor de base de datos, o un proceso administrador como systemd
o supervisor
) al iniciar contenedores separados.
Si está intentando ejecutar un servicio como sshd
, no puede simplemente ejecutar service ssh start
. Esto will dependiendo de la distribución que esté ejecutando dentro de su contenedor do hará una de dos cosas:
Intentará contactar con un gestor de procesos como
systemd
oupstart
para iniciar el servicio. Debido a que no hay un administrador de servicios en ejecución, esto fallará.En realidad comenzará
sshd
, pero lo hará se iniciará en el fondo. Esto significa que (a) el comandoservice sshd start
sale, lo que significa que (b) Docker considera que su contenedor ha fallado, por lo que limpia todo.
Si desea ejecutar solo ssh en un contenedor, considere un ejemplo como this.
Si desea ejecutar sshd
y otros procesos dentro del contenedor, tendrá que investigar algún tipo de supervisor de proceso.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-04-30 02:37:07
Lo que necesito es usar Docker con MariaDB en un puerto diferente /3301/ en mi máquina Ubuntu porque ya tenía MySQL instalado y funcionando en 3306.
Para hacer esto después de medio día de búsqueda lo hizo usando:
docker run -it -d -p 3301:3306 -v ~/mdbdata/mariaDb:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=root --name mariaDb mariadb
Esto extrae la imagen con latest MariaDB, crea un contenedor llamado MariaDB y ejecuta mysql en el puerto 3301. Todos los datos se encuentran en el directorio home en / mdbdata / MariaDB.
Para iniciar sesión en mysql después de eso puede usar:
mysql -u root -proot -h 127.0.0.1 -P3301
Fuentes utilizadas son:
La respuesta de Iarks en este artículo /using-it-d fue la clave :) /
Cómo instalar y usar docker en ubuntu-16-04
Instalación y uso de-mariadb-via-docker
Mariadb-y-docker-casos de uso-parte-1
Buena suerte a todos!
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-06-07 11:18:01