Heim >Java >javaLernprogramm >So erstellen Sie mit Dockerfile ein Image der Java-Laufumgebung

So erstellen Sie mit Dockerfile ein Image der Java-Laufumgebung

PHPz
PHPznach vorne
2023-05-05 13:49:132374Durchsuche

Die aktuell verwendete Umgebung ist:

  • centos 7.5

  • docker-ce 18.06.1-ce

1. Verwenden Sie zunächst das Basis-Image von centos7.5.1804, um einige für den Betrieb erforderliche Umgebungen zu installieren

Erstellen Sie das entsprechende Dateiverzeichnis im /app-Verzeichnis

[root@node2 /app/]# mkdir dockerfile/{web/{nginx,tomcat,jdk,apache},system/{centos,ubuntu,redhat}} -pv
[root@node2 /app]# cd dockerfile/system/centos/
[root@node2 /app/dockerfile/system/centos]# mkdir centos-7.5-base
[root@node2 /app/dockerfile/system/centos]# cd centos-7.5-base

Erstellen Sie eine Dockerfile-Datei

[root@node2 /app/dockerfile/system/centos/centos-7.5-base]#vim dockerfile 
#nginx base image
from centos:7.5.1804

label maintaier "mr.luo <mr.luo@dklwj.com>"

run yum install -y vim wget pcre pcre-devel zlib zlib-devel openssl openssl-devel iproute net-tools iotop

Erstellen Sie ein direktes Docker-Build-Skript und führen Sie das Skript dann direkt aus

[root@node2 /app/dockerfile/system/centos/centos-7.5-base]#vim build-command.sh 
#!/bin/bash
docker build -t 172.20.7.50/baseimages/centos-base:7.5.1804 .

Führen Sie das Skript aus, um ein neues Image zu erstellen

[root@node2 /app/dockerfile/system/centos/centos-7.5-base]#bash build-command.sh 
sending build context to docker daemon 3.072kb
step 1/3 : from centos:7.5.1804
---> 76d6bc25b8a5
step 2/3 : label maintaier &#39;mr.luo@dklwj.com&#39;
---> using cache
---> 05ccd970d71d
step 3/3 : run yum install -y vim wget  pcre pcre-devel zlib zlib-devel openssl openssl-devel iproute net-tools iotop
---> using cache
---> 73d683a54877
successfully built 73d683a54877
successfully tagged 172.20.7.50/baseimages/centos-base:7.5.1804

2 . Verwenden Sie das vorbereitete Basisumgebungs-Image, um ein JDK-Image zu erstellen Aktuelles Verzeichnis. Weiter:
Kopieren Sie die Datei /etc/profile in das aktuelle Verzeichnis.

[root@node2 /app/dockerfile/system/centos/centos-7.5-base]# cd ..
[root@node2 /app/dockerfile/system/centos]# mkdir jdk1.8
[root@node2 /app/dockerfile/system/centos]# cd jdk1.8/

Fügen Sie die JDK-Umgebungsvariable am Ende des Profils hinzu Sehen Sie sich die Dateien im aktuellen Verzeichnis an.

[root@node2 /app/dockerfile/system/centos/jdk1.8]#vim dockerfile 
from 172.20.7.50/baseimages/centos-base:7.5.1804
label maintainer "mr.luo <mr.luo@dklwj.com>"

add jdk-8u162-linux-x64.tar.gz /usr/local/src/
run ln -s /usr/local/src/jdk1.8.0_162/ /usr/local/jdk

add profile /etc/profile

env java_home /usr/local/jdk
env jre_home $java_home/jre
env classpath $java_home/lib/:$jre_home/lib/
env path $path:$java_home/bin

run rm -rf /etc/localtime && ln -snf /usr/share/zoneinfo/asia/shanghai /etc/localtime && echo "asia/shanghai" > /etc/timezone

Überprüfen Sie, ob das erstellte Image normal verwendet werden kann. Basisverzeichnis

[root@node2 /app/dockerfile/system/centos/jdk1.8]#cp profile /etc/profile

Docker-Datei erstellen

[root@node2 /app/dockerfile/system/centos/jdk1.8]#vim profile 
export java_home=/usr/local/jdk
export tomcat_home=/apps/tomcat
export path=$java_home/bin:$java_home/jre/bin:$tomcat_home/bin:$path
export classpath=.$classpath:$java_home/lib:$java_home/jre/lib:$java_home/lib/tools.jar

Docker-Build-Skript erstellen

[root@node2 /app/dockerfile/system/centos/jdk1.8]#vim build-command.sh 
#!/bin/bash
#
docker build -t 172.20.7.50/baseimages/centos7.5-jdk:8.162 .

Ausführen, um die Image-Datei zu erstellen:

[root@node2 /app/dockerfile/system/centos/jdk1.8]#bash build-command.sh 
  sending build context to docker daemon 189.8mb
  step 1/10 : from 172.20.7.50/baseimages/centos-base:7.5.1804
   ---> 73d683a54877
  step 2/10 : label maintainer "mr.luo <mr.luo@dklwj.com>"
   ---> running in 65604dd1f392
  removing intermediate container 65604dd1f392
   ---> c4720603ce38
  step 3/10 : add jdk-8u162-linux-x64.tar.gz /usr/local/src/
   ---> bc98adffe1b4
  step 4/10 : run ln -s /usr/local/src/jdk1.8.0_162/ /usr/local/jdk
   ---> running in df5a6f67f9fd
  removing intermediate container df5a6f67f9fd
   ---> 0ae1af0416c6
  step 5/10 : add profile /etc/profile
   ---> eee23a69c0c8
  step 6/10 : env java_home /usr/local/jdk
   ---> running in edbef8563e83
  removing intermediate container edbef8563e83
   ---> 5f783f642054
  step 7/10 : env jre_home $java_home/jre
   ---> running in fa0e5f08e732
  removing intermediate container fa0e5f08e732
   ---> 28a4d31463d4
  step 8/10 : env classpath $java_home/lib/:$jre_home/lib/
   ---> running in 3c4ebb04ac62
  removing intermediate container 3c4ebb04ac62
   ---> 245f2dd82d52
  step 9/10 : env path $path:$java_home/bin
   ---> running in 4f5e6093f0a9
  removing intermediate container 4f5e6093f0a9
   ---> 5be0e6261eea
  step 10/10 : run rm -rf /etc/localtime && ln -snf /usr/share/zoneinfo/asia/shanghai /etc/localtime && echo "asia/shanghai" > /etc/timezone
   ---> running in 52d8cb8463a8
  removing intermediate container 52d8cb8463a8
   ---> 9fb867ae8c39
  successfully built 9fb867ae8c39
  successfully tagged 172.20.7.50/baseimages/centos7.5-jdk:8.162

Verwenden Sie das erstellte Image, um einen Container zu erstellen, um zu überprüfen, ob es erfolgreich erstellt wurde. Fügen Sie -p hinzu, um den Port freizugeben beim Start und testen Sie es auf der physischen Maschine

[root@node2 /app/dockerfile/system/centos/jdk1.8]#ls
build-command.sh dockerfile jdk-8u162-linux-x64.tar.gz profile

Testen Sie es auf dem Client mit einem Browser

Das obige ist der detaillierte Inhalt vonSo erstellen Sie mit Dockerfile ein Image der Java-Laufumgebung. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:yisu.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen