El efecto final es el siguiente
Hay aproximadamente unos pocos pasos
1. Instalar Docker CE 2. Ejecutar Redis Image 3. Preparación del entorno Java 4. Preparación del proyecto 5. Escribir Dockerfile 6. Proyecto de lanzamiento 7. Servicio de prueba
Preparación ambiental
1. Instale Docker CE
No recomiendo usarlo en China: "Scripts para la instalación", se descargará e instalará muy lentamente. Use el paso 1 para instalarlo, consulte el siguiente enlace: Método de instalación general
1. Método de instalación regular
Ubuntu 17.04 x64 Instalar Docker CE
http://www.ymq.io/2018/01/11/docker-install-docker-ce
2. Instale el script
No se recomiendan guiones para la instalación nacional:
Instalar Docker CE
$ curl -fssl get.docker.com -o getdocker.sh $ sudo sh get -docker.sh
<Pooting Truncated> Si desea utilizar Docker como un usuario no raíz, ahora debe considerar a su usuario en el grupo "Docker" con algo como: sudo usermod -ag docker, lo que utiliza el otro de lo que tendrá que iniciar sesión y volver para que esto se advierte: advirtiendo a un usuario al grupo "Docker" otorgará la capacidad de los contenedores que se pueden utilizar para obtener los privilegios de la raíz en el host del Docker. Consulte https://docs.docker.com/engine/security/security/#docker-daemon-attack-surface para obtener más información.
Verificar Docker CE
Verifique que Docker CE se instale correctamente ejecutando una imagen de Hello-World
$ sudo Docker Run Hello-Worldroot@SouyUnku: ~# sudo Docker ImagesRepository Etiqueta ID de imagen creado SizeHello-World Último F2A91732366c 7 semanas 1.85kb
2. Ejecute la imagen Redis
1. Corre el espejo
$ Docker Run - -Name Redis -6379 -P 6379: 6379 -D RedisuNable para encontrar la imagen 'Redis: Último' LocallyLatest: Tirar de Biblioteca/Redisc4BB02B17BB4: Tire Complete Complete 58638Acf67c5: Pull Complete F98D108CC38B: Pull Complete 83Be14FCCB07: 5D5F41793421: Pull Complete ED89FF0D9EB2: Pull Complete Digest: SHA256: 0E7773022CD6572A5153E5013AFCED0F7191652D3CDF9B1C6785EB13F6B2974B1STATUS: descarga de la imagen de newer: descargada para la imagen de newer descargada para la imagen de newer descargada para la descarga para la imagen de newer. Redis: último2F1F20F672E386A61644E1C08232EA34BDFD6A0C244B55FA833FCFD6DD207288
2. Verifique el espejo
Ver el espejo
root@SouyUnku: ~# Imágenes Docker RedisRepository Etiqueta ID de imagen creada Sizeredis Último 1E70071F4AF4 4 semanas Hace 107mb
Ver el proceso de espejo
Root@SouyUnku: ~# Docker PSContainer ID de ID de ID de identificación Se creó puertos de estado nombres2f1f20f672e3 redis "Docker-entrypoint.s ..." Hace 14 segundos hasta 14 segundos 0.0.0.0:6379->6379/tcp redis-6379
Ver proceso de contenedor
root@SouyUnku: ~# Container Docker PSContainer ID de ID de ID de ID de imagen creado Puertos de estado Nombres2f1f20f672e3 Redis "Docker-EntryPoint.s ..." Hace 7 minutos hasta 7 minutos 0.0.0: 6379-> 6379/TCP Redis-6379
3. Servicio de prueba Redis
Conéctese al servicio Redis a través de Redis-Cli para probar los datos del almacén
root@SouyUnku: ~# Docker Run -it --link Redis -6379: Redis - -RM Redis Redis -Cli -H Redis -P 6379Redis: 6379> Contado de set 1Okredis: 6379> Get Count "1" Redis: 6379> Exitroot@Souyunku: ~##
3. Preparación del entorno de Java
Nota: ¡Lea los siguientes pasos! ! !
1. El entorno Java es compilar el proyecto de muestra de Github Maven Springboot y prepararse
2. O puede compilar y cargar localmente solo. Luego instale el siguiente entorno Java: JDK, Maven, GIT, y puede prescindir de la configuración.
1. Instale JDK
Descargar el método JDK: 1
Descargar JDK1.8 en el entorno Linux, vaya a (sitio web oficial) para descargar el archivo de instalación de JDK
http://www.oracle.com/technetwork/java/javase/downloads/jdk8 downloads-2133151.html
Descargar el método JDK: 2
Mi enlace en el disco de la nube de Baidu: http://pan.baidu.com/s/1jifzf9s contraseña: U4N4
Descargar el método JDK: 3
Use wget para descargar,
$ Wget--No-Cookies--No-Check-Certificate--Header "Cookie: GPW_E24 = http%3a%2f%2fwww.oracle.com%2f; oraclelicense = Aceptación-SecureBackup-Cookie" http://download.oracle.com/otn-pub/java/jdk/8u141-b15/336fa29ff2bb4ef291e347e091f7f4a7/jdk-8u141-linux-x64.tar.gz
Nota, si usa: Descargar el método JDK: 3
Luego, en los siguientes pasos, JDK1.8.0_144 se reemplaza por JDK1.8.0_141
Iniciar la instalación
Cargar directorio en /opt
Descompresión
$ CD /OPT $ TAR ZXVF JDK-8U144-LINUX-X64.TAR.GZ $ MV JDK1.8.0_144 / /LIB /JVM
Configurar variables de entorno
$ VI/etc/perfil#jdkeExport java_home =/lib/jvMexport jre_home = $ {java_home}/jre exports classpath =.: $ {java_home}/lib: $ {jre_home}/lib export = $ {java_home}/bin: $ pathHacer que las variables de entorno sean efectivas
$ fuente /etc /perfil
verificar
Root@SouyUnku: ~# Java -VersionJava versión "1.8.0_141" Java (TM) SE Runtime Entorno (compilación 1.8.0_141-b15) Java Hotspot (TM) Servidor VM (Build 25.141-B15, modo mezclado)
2. Instale Maven
$ apt-get instalación maven
Verificar Maven
root@SouyUnku: ~# mvn -vapache maven 3.3.9maven home:/usr/share/mavenJava versión: 1.8.0_141, Vendor: Oracle CorporationJava Home:/Lib/JVM/JREDEFAUL "AMD64", Familia: "Unix"
3. Instale Git
$ apt-get install git
Verificar Maven
root@SouyUnku: ~# git --versiongit versión 2.11.0
4. Preparación del proyecto
1. Compilar el proyecto
1. Compile el proyecto en el servidor maven por usted mismo
Use GIT para clonar el proyecto
$ git clone https://github.com/souyunku/other-projects.git
Use Maven para compilar el proyecto
$ CD OTROS Projects/Docker-Spring-Boot-Demo/
2. Modificar el proyecto
Modifique la dirección del servidor Redis Spring.redis.host = 45.32.44.217 para ser la IP local. Al ejecutar la imagen Redis, Redis se ha convertido en un servicio de red externo 0.0.0.0:6379->6379/tcp
$ VI SRC/Main/Resources/Application.Properties# Redis Servidor Dirección Spring.Redis.host = 45.32.44.217 $ MVN Paquete
Copie el proyecto Docker-Spring-Boot-Demo-0.0.1-snapshot.jar en el directorio objetivo / directorio / OPT y se utilizará más tarde
$ CP Target/Docker-Spring-Boot-Demo-0.0.1-Snapshot.jar/Opt/
2. Compile el proyecto en Maven local y cárguelo al directorio /OPT y se utilizará más tarde
Modificar la dirección del servidor Redis de la aplicación.
Otros Projects/Docker-Spring-Boot-Demo/Src/Main/Resources/Application.Properties# Redis Servidor Dirección Spring.redis.host = 45.32.44.217
5. Escribir Dockerfile
Escribir Dockerfile basado en Java: 8 Imagen
$ cd /opt /$ touch dockerfile $ vi dockerfile
El contenido editado es el siguiente
# Based on which image FROM java:8# Mount the local folder to the current container VOLUME /tmp# Copy the file to the container, or write it directly as ADD docker-spring-boot-demo-0.0.1-SNAPSHOT.jar /souyunku-app.jarADD docker-spring-boot-demo-0.0.1-SNAPSHOT.jar souyunku-app.jarRUN bash -c 'touch /souyunku-app.jar'# Abrir 80 puerto expose 80# Configure el punto de entrada de comando después de que se inicia el contenedor ["java", "-djava.security.egd = file:/dev /./ urandom", "-jar", "/souyunku-app.jar"]
VI. Publicar el proyecto
1. Compilar la imagen
$ CD /OPT /$ Docker Build -T SouyUnku -App: V1.
Ver la siguiente información demuestra que su Dockerfile no está mal, y la imagen ha sido compilada con éxito
Envío del contexto de compilación al Docker Daemon 18.72MbStep 1/6: De Java: 88: Tiración de la biblioteca/Java5040bd298390: Tire completo FCE5728AAD85: Tire completo 76610EC20BF5: Tire completo 60170FEC2151: Complete E98F73DE8F0D: COMPLETO COLLECTINE 11F7AF24ED9C: HILL 49e2d6393f32: Pull complete bb9cdec9c7f3: Pull complete Digest: sha256:c1ff613e8ba25833d2e1940da0940c3824f03f802c449f3d1815a66b7f8c0e9dStatus: Downloaded newer image for java:8 ---> d23bdf5b1b1bstep 2/6: volumen/tmp ---> en ejecución en 0559a62b0cd5removing contenedor intermedio 05559a62b0cd5 ---> b1f3846913a4step 3/6: agregar docker-spring-boot-demandm.0.0.1-snapshot.jar.JAR.JAR SOYUNKU-APP.JAR-APP. ---> 9F60DAD5D2ACSTEP 4/6: Ejecutar bash -c 'touch /souyUnku-app.jar' ---> Ejecutando en 39D5C09AB614 Removing Intermediate Container 39D5C09AB614 ---> 2B691AdF7922SPEP 5/6: Exponer 80 ----> Running in 11a57437aR Contenedor intermedio 11a57777437a23 ---> 78815d6fe6b2step 6/6: EntryPoint ["java", "-djava.security.egd = file:/dev /./ urandom", "-jar", "/Souyunku-app.jar" ECA10FED3D02 ---> 8EC4E85A0F05 CONSULTILLA CONSULTADO 8EC4E85A0F05 ELLACETIRY SOUYUNKU-APP: V1
2. Ver el espejo
root@souyunku:/opt# docker imágenes Souyunku-apository etiqueta ID de imagen creado
3. Corre el espejo
El fondo de fondo se ejecuta y luego mapea el puerto de contenedor al puerto de red externo 80
root@souyunku:/opt# docker run --name myspringboot -d -p 80:80 SouyUnku -app: V1E68D438603619E363883D4EAE65D3918E1C3E00F867731207BCF06F5690DC64444444
4. Ver el proceso
Verifique el proceso del contenedor y puede ver que Redis está en el puerto 6379 y el proyecto MySpringBoot está en el puerto 80.
root@SouyUnku:/Opt# Container Docker PSContainer ID de ID de comando de estado creado Puertos Namese68D43860361 SouyUnku-App: V1 "Java -djava.securit ..." hace un minuto hasta un minuto 0.0.0.0:80->80/tcp myspringboot0f96446171717171717 "Docker-entrypoint.s ..." Hace 39 minutos hasta 39 minutos 0.0.0.0:6379->6379/tcp redis-6379
7. Servicio de prueba
Acceso al navegador: http://127.0.0.1/, por supuesto, no ingresé 127.0.0.1 Lo hice directamente en el servidor y usé la IP pública
Docker componer
Docker Compose es uno de los proyectos oficiales de orquestación de Docker, responsable de implementar rápidamente aplicaciones distribuidas en grupos.
Una aplicación que utiliza un contenedor Docker generalmente consta de múltiples contenedores. Con Docker Compose , ya no necesita usar scripts de shell para iniciar contenedores. En el archivo de configuración, todos los contenedores están definidos por los servicios, y luego usan el script Docker-Compose para iniciar, detener y reiniciar la aplicación, y los servicios en la aplicación y todos los contenedores que dependen de los servicios.
Resumir
El anterior es el código de ejemplo para el proyecto SpringBoot de implementación de Docker que el editor le presentó. Espero que te sea útil. Si tiene alguna pregunta, déjame un mensaje y el editor le responderá a tiempo. ¡Muchas gracias por su apoyo al sitio web de Wulin.com!