<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en-GB">
	<id>https://training-course-material.com/index.php?action=history&amp;feed=atom&amp;title=Docker_Compose</id>
	<title>Docker Compose - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://training-course-material.com/index.php?action=history&amp;feed=atom&amp;title=Docker_Compose"/>
	<link rel="alternate" type="text/html" href="https://training-course-material.com/index.php?title=Docker_Compose&amp;action=history"/>
	<updated>2026-05-13T23:09:21Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.45.1</generator>
	<entry>
		<id>https://training-course-material.com/index.php?title=Docker_Compose&amp;diff=85536&amp;oldid=prev</id>
		<title>Kbaran1 at 19:24, 12 April 2022</title>
		<link rel="alternate" type="text/html" href="https://training-course-material.com/index.php?title=Docker_Compose&amp;diff=85536&amp;oldid=prev"/>
		<updated>2022-04-12T19:24:29Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;[[Category:Docker]]&lt;br /&gt;
[[Category:course_code_dockcm]]&lt;br /&gt;
&lt;br /&gt;
{{Copyright Notice}}&lt;br /&gt;
&lt;br /&gt;
== Author ==&lt;br /&gt;
* [http://www.kamilbaran.pl Kamil Baran]&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Docker Compose Installation ==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Bash&amp;quot;&amp;gt;&lt;br /&gt;
$ sudo -i&lt;br /&gt;
$ curl -L https://github.com/docker/compose/releases/download/1.26.2/docker-compose-`uname -s`-`uname -m` &amp;gt; /usr/local/bin/docker-compose&lt;br /&gt;
$ chmod +x /usr/local/bin/docker-compose&lt;br /&gt;
$ curl -L https://raw.githubusercontent.com/docker/compose/$(docker-compose version --short)/contrib/completion/bash/docker-compose &amp;gt; /etc/bash_completion.d/docker-compose&lt;br /&gt;
$ exit&lt;br /&gt;
$ docker-compose --version&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
* more info: docs.docker.com/compose/install&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Wordpress Example ==&lt;br /&gt;
&lt;br /&gt;
=== Start Wordpress without Docker Compose ===&lt;br /&gt;
To start a Wordpress site in containers, you need to complete following steps:&lt;br /&gt;
# create custom network for the application&lt;br /&gt;
# create volume for database container&lt;br /&gt;
# create volume for web server container&lt;br /&gt;
# create database container&lt;br /&gt;
# create web server container&lt;br /&gt;
&lt;br /&gt;
The commands below represents an example of all required steps:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Bash&amp;quot;&amp;gt;&lt;br /&gt;
$ docker network create wordpress_net&lt;br /&gt;
$ docker volume create wordpress_mysql_data&lt;br /&gt;
$ docker volume create wordpress_html&lt;br /&gt;
$ docker run -d --name wordpress_mysql --network wordpress_net -v wordpress_mysql_data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=NobleProg -e MYSQL_DATABASE=wordpress -e MYSQL_USER=wordpress -e MYSQL_PASSWORD=wordpress mysql:5.7&lt;br /&gt;
$ docker run -d --name wordpress_apache --network wordpress_net -v wordpress_html:/var/www/html -p 80:80 -e WORDPRESS_DB_HOST=wordpress_mysql:3306 -e WORDPRESS_DB_USER=wordpress -e WORDPRESS_DB_PASSWORD=wordpress wordpress:php7.2-apache&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
When you want to delete your Wordpress site completely you need to remove containers, volumes and network by executing following commands:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Bash&amp;quot;&amp;gt;&lt;br /&gt;
$ docker container rm -f wordpress_mysql wordpress_apache&lt;br /&gt;
$ docker volume rm wordpress_mysql_data wordpress_html&lt;br /&gt;
$ docker network rm wordpress_net&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Start Wordpress with Docker Compose ===&lt;br /&gt;
Docker Compose allows you to manage your multi-container applications by running a straightforward command.&lt;br /&gt;
For example, to start, stop and remove Wordpress site, you need to execute following commands accordingly:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Bash&amp;quot;&amp;gt;&lt;br /&gt;
$ docker-compose up -d&lt;br /&gt;
$ docker-compose stop&lt;br /&gt;
$ docker-compose down --volumes&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
There are only a few things you need to do before you can start Wordpress site by using Docker Compose:&lt;br /&gt;
# Install Docker Compose (usually it&amp;#039;s not installed with Docker)&lt;br /&gt;
# create a docker-compose.yml (or .yaml) in an empty directory containing following content&lt;br /&gt;
# run above commands in the same directory where the docker-compose.yml file is located (or use -f option to specify a path to the file).&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;yaml&amp;quot;&amp;gt;&lt;br /&gt;
version: &amp;#039;3&amp;#039;&lt;br /&gt;
services:&lt;br /&gt;
  mysql:&lt;br /&gt;
    image: mysql:latest&lt;br /&gt;
    volumes:&lt;br /&gt;
    - mysql_data:/var/lib/mysql&lt;br /&gt;
    environment:&lt;br /&gt;
    - MYSQL_ROOT_PASSWORD=NobleProg&lt;br /&gt;
    - MYSQL_DATABASE=wordpress&lt;br /&gt;
    - MYSQL_USER=wordpress&lt;br /&gt;
    - MYSQL_PASSWORD=wordpress&lt;br /&gt;
    networks: &lt;br /&gt;
    - net&lt;br /&gt;
  apache:&lt;br /&gt;
    depends_on:&lt;br /&gt;
    - mysql&lt;br /&gt;
    image: wordpress:latest&lt;br /&gt;
    volumes:&lt;br /&gt;
    - html:/var/www/html&lt;br /&gt;
    ports:&lt;br /&gt;
    - 80:80&lt;br /&gt;
    environment:&lt;br /&gt;
    - WORDPRESS_DB_HOST=mysql:3306&lt;br /&gt;
    - WORDPRESS_DB_USER=wordpress&lt;br /&gt;
    - WORDPRESS_DB_PASSWORD=wordpress&lt;br /&gt;
    networks:&lt;br /&gt;
    - net&lt;br /&gt;
volumes:&lt;br /&gt;
  mysql_data:&lt;br /&gt;
  html:&lt;br /&gt;
networks:&lt;br /&gt;
  net:&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Mongo Counter Example ==&lt;br /&gt;
* create an empty directory called mc-app&lt;br /&gt;
* copy content from httpd (Dockerfile and html directory) and mongodb (Dockerfile) directories created previously&lt;br /&gt;
* create a docker-compose.yml file containing below configuration&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Bash&amp;quot;&amp;gt;&lt;br /&gt;
version: &amp;#039;3&amp;#039;&lt;br /&gt;
services:&lt;br /&gt;
  httpd:&lt;br /&gt;
    build: ./httpd&lt;br /&gt;
    image: kamilbaran/training:httpd&lt;br /&gt;
    network_mode: host&lt;br /&gt;
  mongo:&lt;br /&gt;
    build: ./mongo&lt;br /&gt;
    image: kamilbaran/training:mongo&lt;br /&gt;
    network_mode: host&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* in order to build all images at once and start entire application run below command&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Bash&amp;quot;&amp;gt;&lt;br /&gt;
$ docker-compose up --build -d&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* more information about options available in docker-compose files: docs.docker.com/compose/compose-file&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;/div&gt;</summary>
		<author><name>Kbaran1</name></author>
	</entry>
</feed>