Red de conocimiento informático - Problemas con los teléfonos móviles - Redis se inicia en el contenedor con el contenedor

Redis se inicia en el contenedor con el contenedor

Inicio automático de servicios de aplicaciones en contenedores Docker

Si desea que los servicios de aplicaciones en contenedores Docker se inicien automáticamente cuando se abre el contenedor.

Solo necesita escribir el script de inicio del servicio en el Dockerfile y luego usar el Dockerfile para reconstruir la imagen:

Escribir el script de inicio automático del servicio de la aplicación

Escribir el Dockerfile

Reconstruir la imagen

Abrir el contenedor

Escribir un script de inicio automático del servicio (dockerd)

(tomcat como ejemplo) #! /bin/bash## ## chkconfig: 345 98 30# descripción: ?programa tomcat.# nombre del proceso: tomcat# Biblioteca de funciones de origen.. /etc/rc.d/init.d/functions# Configuración de red de origen.# /. etc/sysconfig/networkprog="tomcat "checkprocess()

{

chkret=`ps -ef |grep $prog |grep -v "grep" |wc -l` return $chkret}start()

{ cd /usr/local/tomcat/bin/

./startup.sh echo "Servicio $prog iniciado!"}#/usr/sbin /nscd ?&/usr/sbin /sshd -D & while [ true ]do

DNSIP=172.18.3.179

ping=`ping -c 3 $DNSIP|awk 'NR= =7 {print $4}'` if [[ $ping -eq "3" ]] entonces

descanso

fi

dormir 3done while [ true ]do

checkprocess ?if [[ $chkret -eq "0" ]] entonces

?#nscd -i hosts

else

echo "El servicio $prog se está ejecutando."

fi

sleep 60doneexit 012345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505 15253 5455565758

Escribir Dockerfile DESDE ?tomcat

MANTENEDOR liu "350142639@qq.com"AGREGAR dockerd ?/etc/rc.d/init.d/

EJECUTAR chmod 777 ?/etc/rc.d/init.d/dockerd

ENV JAVA_HOME ?/usr/local/ jdk1.6.0_30

RUTA ENV ?$JAVA_HOME/bin:$PATH

RUTA DE CLASES ENV .:$JAVA_HOME/lib/dt.

jar:$JAVA_HOME/lib/tools.jarCMD /etc/rc.d/init.d/dockerd123456789101112131415161718

Entre ellos, ADD agrega el script en el mismo directorio a la ubicación especificada de la imagen y ENV establece las variables de entorno de Java (muy importante, el script de inicio automático no se puede ejecutar con éxito sin escribir esta oración. Solo puede haber un comando CMD, que se usa para ejecutar el comando cuando se inicia el contenedor). También puede ser un guión.

Reconstruir la imagen

** ¿Pasó?

docker build -t nuevo nombre de imagen.?

Crear con éxito una nueva imagen

Abra el contenedor

docker run -d -h=”s” –name=”s” new image name

Luego, se encuentra que Tomcat tiene

Leer el texto completo