Content
Docker-compose bietet die Möglichkeit Container zu orchestrieren. In Einem File werden mehrere Services kombiniert.
Als Beispiel könnte eine Wordpress installation dienen:
- Webserver
- Datenbankserver
Als Beispiel hier, soll der selbstgemachte MySQL Container dienen.
Docker compose installieren:
sudo apt-get install docker-compose
Compose file für Mysql:
version: "3"
services:
mysql:
network_mode: bridge
restart: always
container_name: mysqlcontainer
build:
context: .
dockerfile: Mysqldocker
volumes:
- mysqlvolume:/var/lib/mysql
ports:
- 12345:3306
volumes:
mysqlvolume:
Container mit compose file starten
docker-compose -f mysql-compose.yml up -d
Container mit compose file stoppen
docker-compose -f mysql-compose.yml stop
User erstellen/daten einfügen/verbinden
echo "CREATE user 'mondial'@'%' IDENTIFIED BY 'pwd';" | docker exec -i mysqlcontainer mysql
echo "CREATE DATABASE Mondial" | docker exec -i mysqlcontainer mysql
echo "GRANT ALL PRIVILEGES ON Mondial.* to 'mondial'@'%'" | docker exec -i mysqlcontainer mysql
wget https://www.dbis.informatik.uni-goettingen.de/Mondial/OtherDBMSs/mondial-schema-mysql.sql
wget https://www.dbis.informatik.uni-goettingen.de/Mondial/OtherDBMSs/mondial-inputs-mysql.sql
cat mondial-schema-mysql.sql | mysql --host=127.0.0.1 --port=12345 -u mondial -p
cat mondial-inputs-mysql.sql | mysql --host=127.0.0.1 --port=12345 -u mondial -p
mysql --host=127.0.0.1 --port=12345 -u mondial -p
use Mondial;
select name from country where name like 'A%';