Mein Technologie-Stack fühlt sich zu alt und erbärmlich an Ich möchte mich vom alten Onkel lösen und wieder als Ingenieur anfangen Ich fing an zu studieren. Vielen Dank, dass Sie & # x1f600;
Also habe ich mich entschlossen, zuerst Docker zu studieren.
Diagramm
Software-Informationen OS:Windows10 Docker:19.03.12 Program:Java11 MySQL:8.0.21 Adminer:latest WebBrowser: Alles
Vorerst aus meinem eigenen Java-Programm auf dem Host-Betriebssystem Herausforderung beim Zugriff auf die Datenbank im Container.
Vorbereitet durch leichtes Anordnen von docker-compose.yml auf der Erklärungsseite von MySQL in Docker Hub. DockerHub MySQL-Seite
# Use root/example as user/password credentials
version: '3.1'
services:
db:
image: mysql:8.0.21 #Veränderung
command: --default-authentication-plugin=mysql_native_password
restart: always
environment:
MYSQL_ROOT_PASSWORD: root
MYSQL_DATABASE: hoge #hinzufügen
MYSQL_USER: hoge #hinzufügen
MYSQL_PASSWORD: hoge #hinzufügen
ports: #hinzufügen
- 3306:3306 #hinzufügen
adminer:
image: adminer:latest
restart: always
ports:
- 8080:8080
Der Teil mit # ist der Anordnungsteil. Ich hatte das Gefühl, dass sich die Version des MySQL-Images ändern würde, wenn ich die neueste Version angeben würde, also habe ich 8.0.21 angegeben. Diesmal wird also von außerhalb des Containers darauf zugegriffen Fügen Sie eine geeignete Datenbank hinzu und stellen Sie den Port 3306 so ein, dass er nach außen zeigt.
Im selben Ordner wie die obige Einstellungsdatei Beginnen Sie mit dem Befehl docker-compose.
docker-compose up
Da es im Vordergrund läuft, während das Protokoll angezeigt wird Überprüfen Sie, ob es sich auf einer anderen Konsole befindet
docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
0c5d267f22ee mysql:8.0.21 "docker-entrypoint.s…" 26 seconds ago Up 25 seconds 0.0.0.0:3306->3306/tcp, 33060/tcp mysql_db_1
258f5885810d adminer:latest "entrypoint.sh docke…" 26 seconds ago Up 25 seconds 0.0.0.0:8080->8080/tcp mysql_adminer_1
(´ ・ ω ・ `) Oh
Adminer scheint ein Webclient zu sein, der mit PHP erstellte DB betreiben kann. Wenn die MySQL- und Adminer-Container ausgeführt werden http://localhost:8080/ Wenn Sie darauf zugreifen, wird der folgende Bildschirm angezeigt Geben Sie die zuvor in docker-compose.yml beschriebenen DB- und Benutzerinformationen ein.
Dann mit einem passenden Tisch wie diesem
Fügen Sie einen entsprechenden Datensatz wie diesen ein, und die Datenbank ist vollständig.
Beschreiben Sie zunächst die Abhängigkeiten des MySQL-Treibers in gradle.
apply plugin: 'java'
apply plugin: 'application'
apply plugin: 'eclipse'
repositories {
mavenCentral()}
dependencies {
compile group: 'mysql', name: 'mysql-connector-java', version: '8.0.21'
testImplementation 'junit:junit:4.12'
}
Erstellen Sie dann eine Klasse, die eine SQL-Abfrage an MySQL sendet und das Ergebnis anzeigt.
public class DockerMySQLAccessor {
public static void main(String[] args) {
System.out.println("Greifen Sie im Docker-Container auf MySQL zu");
try(Connection con = DriverManager.getConnection(
"jdbc:mysql://localhost:3306/hoge?useSSL=false",
"hoge", // UserId
"hoge" // Password
)) {
PreparedStatement pstmt = con.prepareStatement("select * from TEST_TBL");
ResultSet rs = pstmt.executeQuery();
while (rs.next()) {
System.out.printf("ID:%d, HOGE:%s \n", rs.getInt("ID"), rs.getString("HOGE"));
}
} catch (SQLException e) {
e.printStackTrace();
}
}
}
Führen Sie den Java-Code von Eclipse aus. Sie können die Aufzeichnung erhalten, die Sie gerade eingegeben haben! Ich habs gemacht. (´ ・ ω ・ `) v
Richten Sie vorerst einfach einen virtuellen DB-Server mit Docker ein. Es kann von einem lokalen Programm aus zugegriffen werden.
Diesmal ist es ein Docker-Touch Ich habe plötzlich das Docker-Compose verwendet, weil die Einstellungen fast vollständig kopiert wurden. Erstellen Sie im tatsächlichen Betrieb eine Docker-Datei für jeden Container und erstellen Sie ein Image? Außerdem möchte ich das Programm auf dem Container ausführen und zwischen den Containern kommunizieren. Diesmal wieder hier.
Es war eine großartige Referenz, um Docker in Win10 zu integrieren. Danke <(_ _)> Einführung in Docker durch Legacy Engineer
Recommended Posts