Top Menu

Jump to content
Home
    • Projects
    • Work packages
    • News
    • Getting started
    • Introduction video
      Welcome to OpenProject
      Get a quick overview of project management and team collaboration with OpenProject. You can restart this video from the help menu.

    • Help and support
    • Upgrade to Enterprise edition
    • User guides
    • Videos
    • Shortcuts
    • Community forum
    • Professional support

    • Additional resources
    • Data privacy and security policy
    • Digital accessibility (DE)
    • OpenProject website
    • Security alerts / Newsletter
    • OpenProject blog
    • Release notes
    • Report a bug
    • Development roadmap
    • Add and edit translations
    • API documentation
  • Sign in
      Create a new account
      Forgot your password?

Side Menu

  • Overview
  • Activity
  • Wiki
    • Table of contents
      • Expanded. Click to collapseCollapsed. Click to showWiki
        • Hierarchy leafModalität
        • Expanded. Click to collapseCollapsed. Click to showThemen
          • Hierarchy leaf00) Installation GNU/Linux in Virtualbox
          • Hierarchy leaf01) GNU/Linux Basics & Bash commandos
          • Hierarchy leaf02) Schulinternes APT Repository
          • Hierarchy leaf03) Fernwartung über SSH
          • Hierarchy leaf04) Prozesse und Systemd
          • Hierarchy leaf05) UFW
          • Hierarchy leaf06) MySQL
          • Hierarchy leaf07) Abfragen an die Mondial Datenbank
          • Hierarchy leaf08) PostgreSQL
          • Hierarchy leaf10) Crontab
          • Hierarchy leaf11) Wordpress
          • Expanded. Click to collapseCollapsed. Click to show12) Docker
            • Hierarchy leaf00) MySQL - Volumes - Ports ...
            • Hierarchy leaf01) PostgreSQL
            • Hierarchy leaf02) Docker-Compose
You are here:
  • Wiki
  • Themen
  • 12) Docker
  • 00) MySQL - Volumes - Ports ...

Content

00) MySQL - Volumes - Ports ...

  • More
    • Print
    • Table of contents

Dockerfile (Mysqldocker)

#Base image
FROM ubuntu:18.04
#Packetquellen aktualisieren
RUN apt-get update
#Mysql installieren (-y ohne Nachfrage)
RUN apt-get install -y mysql-server
#bind-address wird auskommentiert
#Mysql hört standardmäßig nur auf Anfragen vom gleichen Computer (localhost)
RUN sed -i 's/bind-address/#bind-address/g' /etc/mysql/mysql.conf.d/mysqld.cnf
#Zuerst wird mysql service gestartet, dannach für immer gewartet um den Container nicht zu beenden
CMD service mysql start && sleep infinity

Image erstellen

docker build -t mysqlimage:latest -f Mysqldocker ./

Persistenter Speicher für Container

Wird ein Container gestoppt, gelöscht und neu gestartet, so ist der komplette Inhalt weg. Das heißt, auch alle Datenbanken.

#Erstellt ein persistentes Volume (wird nicht gelöscht)
#docker volume create [volumename]
docker volume create mysqlvolume

Volume wird im Ordner /var/lib/docker/volumes abgelegt.

Container aus mysqlimage:latest erstellen

docker run -d -v mysqlvolume:/var/lib/mysql -p 12345:3306 --name mysqlcontainer mysqlimage:latest

Parameter -v [host volume or directory]:[container directory]

Nimmt erstelltes Volume (mysqlvolume) und mapped es im Container in den Ordner /var/lib/mysql. In diesem Ordner werden die Datenbanken und weiter Dateien gespeichert.

-v mysqlvolume:/var/lib/mysql

Parameter -p [host port]:[container port]

Mapped einen Port auf dem Hostsystem in den Container. 12345 ist der Port auf dem Host, 3306 der Port im Container.

-p 12345:3306

User erstellen in docker container

#Verbinden mit Container
docker exec -it mysqlcontainer bash
#Erstellen des Benutzers (Benutzer darf sich von überall anmelden mit %)
echo "CREATE user 'mondial'@'%' IDENTIFIED BY 'pwd';" | mysql
#Oder direkt eine Zeile ohne verbinden mit Docker Container
echo "CREATE user 'mondial'@'%' IDENTIFIED BY 'pwd';" | docker exec -i mysqlcontainer mysql

Verbinden mit Containerdatenbank vom Host

mysql --host=127.0.0.1 --port=12345 -u mondial -p

Sollte mysql auf dem Host nicht verfügbar sein so muss es installiert werden:

sudo apt-get install mysql-client
Loading...