Heim >Datenbank >MySQL-Tutorial >Wie übertrage ich Datenänderungen an ein MySQL-Container-Image?

Wie übertrage ich Datenänderungen an ein MySQL-Container-Image?

Linda Hamilton
Linda HamiltonOriginal
2024-10-24 10:48:29247Durchsuche

How Do I Commit Data Changes to a MySQL Container Image?

So übermitteln Sie Datenänderungen an ein MySQL-Container-Image

Wenn Sie das offizielle MySQL-Image zum Erstellen eines Containers verwenden, werden alle darin gespeicherten Daten gelöscht Die Datenbank bleibt auch dann bestehen, wenn der Container gestoppt oder gelöscht wird. Dies liegt daran, dass die Daten in einem persistenten Volume gespeichert werden, das nicht Teil des Images selbst ist.

In einigen Fällen möchten Sie jedoch möglicherweise die Datenbankänderungen in das Image übernehmen, damit die Daten darin enthalten sind das neue Bild. Dazu müssen Sie ein benutzerdefiniertes MySQL-Image ohne Volumes erstellen.

Schritte:

  • Erstellen Sie eine neue Docker-Datei und fügen Sie die folgenden Zeilen ein:
FROM mysql
VOLUME ["/var/lib/mysql"]
  • Entfernen Sie das /var/lib/mysql-Volume.
  • Erstellen Sie das Image:
<code class="sh">sudo docker build -t <image-name> .</code>
  • Ausführen Erstellen Sie den Container mit dem neuen Image und importieren Sie den SQL-Dump:
<code class="sh">sudo docker run --name mysql-psat1 -e MYSQL_ROOT_PASSWORD=secret -d <image-name>
sudo docker exec -it mysql-psat1 bash
> mysql -uroot -psecret -e 'create database liferay_psat1;'
> mysql -uroot -psecret liferay_psat1 < /mnt/liferay_sql_dump.sql</code>
  • Übernehmen Sie die Änderungen am Image:
<code class="sh">sudo docker commit -m "Imported liferay sql dump" mysql-psat1 <image-name>:v1</code>

Das neue Image wird enthalten die neu erstellte Datenbank und ihre Daten.

Das obige ist der detaillierte Inhalt vonWie übertrage ich Datenänderungen an ein MySQL-Container-Image?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn