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:~# 
 30
Author: Karl Morrison, 2015-04-30

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 o upstart 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 comando service 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.

 45
Author: larsks,
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!

 1
Author: panayot_kulchev_bg,
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