{"version":"1.0","provider_name":"Docker-Profis","provider_url":"https:\/\/dockerpros.com\/de","title":"Docker Compose Run - Dockerpros","type":"rich","width":600,"height":338,"html":"<blockquote class=\"wp-embedded-content\" data-secret=\"U4bkZCJMyv\"><a href=\"https:\/\/dockerpros.com\/de\/wiki\/docker-compose-run\/\">Docker Compose Run\n\nDocker Compose ist ein Tool, das es erm\u00f6glicht, mehrere Docker-Container als Einheit zu definieren und zu verwalten. Es verwendet eine YAML-Datei, um die Konfiguration der Container zu beschreiben, einschlie\u00dflich der verwendeten Images, der Netzwerkeinstellungen, der Umgebungsvariablen und der Verkn\u00fcpfungen zwischen den Containern.\n\nUm Docker Compose zu verwenden, m\u00fcssen Sie zun\u00e4chst eine YAML-Datei erstellen, die die Konfiguration Ihrer Container beschreibt. Diese Datei wird normalerweise \"docker-compose.yml\" genannt und sollte im Stammverzeichnis Ihres Projekts gespeichert werden.\n\nHier ist ein Beispiel f\u00fcr eine einfache docker-compose.yml-Datei:\n\n```yaml\nversion: '3'\nservices:\n  web:\n    image: nginx:latest\n    ports:\n      - \"80:80\"\n    volumes:\n      - .\/html:\/usr\/share\/nginx\/html\n  db:\n    image: mysql:latest\n    environment:\n      MYSQL_ROOT_PASSWORD: example\n```\n\nIn diesem Beispiel definieren wir zwei Dienste: \"web\" und \"db\". Der \"web\"-Dienst verwendet das neueste Nginx-Image und bindet Port 80 des Containers an Port 80 des Hosts. Au\u00dferdem wird ein Volume eingebunden, das den Inhalt des \"html\"-Verzeichnisses im Stammverzeichnis des Projekts in das Nginx-Verzeichnis f\u00fcr statische Dateien kopiert. Der \"db\"-Dienst verwendet das neueste MySQL-Image und setzt das Root-Passwort auf \"example\".\n\nUm die Container mit Docker Compose zu starten, navigieren Sie zum Verzeichnis, das die docker-compose.yml-Datei enth\u00e4lt, und f\u00fchren Sie den folgenden Befehl aus:\n\n```\ndocker-compose up\n```\n\nDieser Befehl startet alle in der docker-compose.yml-Datei definierten Container. Wenn Sie die Container im Hintergrund starten m\u00f6chten, k\u00f6nnen Sie den Parameter \"-d\" hinzuf\u00fcgen:\n\n```\ndocker-compose up -d\n```\n\nUm die Container zu stoppen, verwenden Sie den folgenden Befehl:\n\n```\ndocker-compose down\n```\n\nDocker Compose bietet auch viele weitere Befehle und Optionen, um die Container zu verwalten. Zum Beispiel k\u00f6nnen Sie mit \"docker-compose ps\" eine Liste der laufenden Container anzeigen, mit \"docker-compose logs\" die Logs der Container anzeigen und mit \"docker-compose exec\" Befehle in den Containern ausf\u00fchren.\n\nZusammenfassend l\u00e4sst sich sagen, dass Docker Compose ein leistungsstarkes Tool ist, um mehrere Docker-Container als Einheit zu verwalten. Es vereinfacht die Konfiguration und Verwaltung von Multi-Container-Anwendungen erheblich und ist ein unverzichtbares Werkzeug f\u00fcr jeden Docker-Entwickler.<\/a><\/blockquote><iframe sandbox=\"allow-scripts\" security=\"restricted\" src=\"https:\/\/dockerpros.com\/de\/wiki\/docker-compose-run\/embed\/#?secret=U4bkZCJMyv\" width=\"600\" height=\"338\" title=\"\u201eDocker-Compose-Run\u201c \u2013 Docker-Profis\" data-secret=\"U4bkZCJMyv\" frameborder=\"0\" marginwidth=\"0\" marginheight=\"0\" scrolling=\"no\" class=\"wp-embedded-content\"><\/iframe><script>\n\/**\n * WordPress inline HTML embed\n *\n * @since 4.4.0\n * @output wp-includes\/js\/wp-embed.js\n *\n * Single line comments should not be used since they will break\n * the script when inlined in get_post_embed_html(), specifically\n * when the comments are not stripped out due to SCRIPT_DEBUG\n * being turned on.\n *\/\n(function ( window, document ) {\n\t'use strict';\n\n\t\/* Abort for ancient browsers. *\/\n\tif ( ! document.querySelector || ! window.addEventListener || typeof URL === 'undefined' ) {\n\t\treturn;\n\t}\n\n\t\/** @namespace wp *\/\n\twindow.wp = window.wp || {};\n\n\t\/* Abort if script was already executed. *\/\n\tif ( !! window.wp.receiveEmbedMessage ) {\n\t\treturn;\n\t}\n\n\t\/**\n\t * Receive embed message.\n\t *\n\t * @param {MessageEvent} e\n\t *\/\n\twindow.wp.receiveEmbedMessage = function( e ) {\n\t\tvar data = e.data;\n\n\t\t\/* Verify shape of message. *\/\n\t\tif (\n\t\t\t! ( data || data.secret || data.message || data.value ) ||\n\t\t\t\/[^a-zA-Z0-9]\/.test( data.secret )\n\t\t) {\n\t\t\treturn;\n\t\t}\n\n\t\tvar iframes = document.querySelectorAll( 'iframe[data-secret=\"' + data.secret + '\"]' ),\n\t\t\tblockquotes = document.querySelectorAll( 'blockquote[data-secret=\"' + data.secret + '\"]' ),\n\t\t\tallowedProtocols = new RegExp( '^https?:$', 'i' ),\n\t\t\ti, source, height, sourceURL, targetURL;\n\n\t\tfor ( i = 0; i < blockquotes.length; i++ ) {\n\t\t\tblockquotes[ i ].style.display = 'none';\n\t\t}\n\n\t\tfor ( i = 0; i < iframes.length; i++ ) {\n\t\t\tsource = iframes[ i ];\n\n\t\t\tif ( e.source !== source.contentWindow ) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tsource.removeAttribute( 'style' );\n\n\t\t\tif ( 'height' === data.message ) {\n\t\t\t\t\/* Resize the iframe on request. *\/\n\t\t\t\theight = parseInt( data.value, 10 );\n\t\t\t\tif ( height > 1000 ) {\n\t\t\t\t\theight = 1000;\n\t\t\t\t} else if ( ~~height < 200 ) {\n\t\t\t\t\theight = 200;\n\t\t\t\t}\n\n\t\t\t\tsource.height = height;\n\t\t\t} else if ( 'link' === data.message ) {\n\t\t\t\t\/* Link to a specific URL on request. *\/\n\t\t\t\tsourceURL = new URL( source.getAttribute( 'src' ) );\n\t\t\t\ttargetURL = new URL( data.value );\n\n\t\t\t\tif (\n\t\t\t\t\tallowedProtocols.test( targetURL.protocol ) &&\n\t\t\t\t\ttargetURL.host === sourceURL.host &&\n\t\t\t\t\tdocument.activeElement === source\n\t\t\t\t) {\n\t\t\t\t\twindow.top.location.href = data.value;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t};\n\n\tfunction onLoad() {\n\t\tvar iframes = document.querySelectorAll( 'iframe.wp-embedded-content' ),\n\t\t\ti, source, secret;\n\n\t\tfor ( i = 0; i < iframes.length; i++ ) {\n\t\t\t\/** @var {IframeElement} *\/\n\t\t\tsource = iframes[ i ];\n\n\t\t\tsecret = source.getAttribute( 'data-secret' );\n\t\t\tif ( ! secret ) {\n\t\t\t\t\/* Add secret to iframe *\/\n\t\t\t\tsecret = Math.random().toString( 36 ).substring( 2, 12 );\n\t\t\t\tsource.src += '#?secret=' + secret;\n\t\t\t\tsource.setAttribute( 'data-secret', secret );\n\t\t\t}\n\n\t\t\t\/*\n\t\t\t * Let post embed window know that the parent is ready for receiving the height message, in case the iframe\n\t\t\t * loaded before wp-embed.js was loaded. When the ready message is received by the post embed window, the\n\t\t\t * window will then (re-)send the height message right away.\n\t\t\t *\/\n\t\t\tsource.contentWindow.postMessage( {\n\t\t\t\tmessage: 'ready',\n\t\t\t\tsecret: secret\n\t\t\t}, '*' );\n\t\t}\n\t}\n\n\twindow.addEventListener( 'message', window.wp.receiveEmbedMessage, false );\n\tdocument.addEventListener( 'DOMContentLoaded', onLoad, false );\n})( window, document );\n\/\/# sourceURL=https:\/\/dockerpros.com\/wp-includes\/js\/wp-embed.js\n<\/script>","thumbnail_url":"https:\/\/dockerpros.com\/wp-content\/uploads\/2024\/07\/docker-compose-run_1189.jpg","thumbnail_width":800,"thumbnail_height":600,"description":"Docker Compose Run enables developers to define and run multi-container applications easily. By specifying services in a `docker-compose.yml` file, users can efficiently manage dependencies and configurations."}