Faster and Easier Software Development using Docker Platform Mohd Syukor Abdul Open Source Community 29 January 2019
2 Agenda 01 Introduction to Docker 02 Development using Docker 03 Deployment using Docker 04 Demonstration
3 Agenda 01 Introduction to Docker 02 Development using Docker 03 Deployment using Docker 04 Demonstration
4 What is Docker? • Docker is a platform for developing, shipping and running applications using container virtualization from development to production both on premises and in the cloud. • Docker containers wrap up a piece of software in a complete file system that contains everything it needs to run: code, runtime, system tools, system libraries – anything you can install on a server. • This guarantees that it will always run the same, regardless of the environment it is running in. https://www.docker.com/
5 Why Docker? Docker created the industry standard for containers, so they could be portable anywhere. Docker provides a consistent environment for application from the development all the way to production Applications are safer in containers and Docker provides the strongest default isolation capabilities in the industry Containers share the machine’s OS system kernel and therefore do not require an OS per application, driving higher server efficiencies and reducing server and licensing costs
6 Docker vs Virtual Machine Docker Virtual Machine Source: https://www.docker.com/resources/what-container
7 Docker: Terms Docker Image The basis of a Docker container. Represents a full application. Docker Container The standard unit in which the application service resides and executes. Registry Service (Docker Hub or Docker Trusted Registry) Cloud or server based storage and distribution service for your images. Docker Engine Creates, ships and runs Docker containers deployable on a physical or virtual, host locally, in a datacenter or cloud service provider. Docker Volume The storage for persisting data generated by and used by Docker containers.
8 Docker Trusted Registry Source: https://www.docker.com/products/orchestration
9 Docker CI/CD Docker Continuous Integration and Continuous Deployment (CI/CD) Source: https://blog.docker.com/2016/04/cicd-with-docker-cloud/
10 Docker Images and Containers Lifecycle Dockerfile Docker Image Docker Container BUILD RUN COMMIT Image Container (Running) Container (Stop) Container (Deleted) Image (Deleted) Container (Restart) Docker Host Docker Registry Docker Registry
11 Data Persistence in Docker: Dir Mapping • Use file system directories (mounting from host) during app development. easily to edit app in folder /myapp1 at development host easily to edit app in folder C:Usersuser10html at development host docker run --name mynginx10 –d -v /myapp1/html:/usr/share/nginx/html:ro -P nginx docker run --name mynginx20 –d –v c:/Users/user10/html:/usr/share/nginx/html –p 8080:80 nginx
12 Data Persistence in Docker: Docker Volume • Use Docker volume for app development/deployment docker volume create evoting_db docker run –d –p 3306:3306 -v evoting_db:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=%P1lih4nR4y4#2023! mariadb:10.4-bionic Docker volume evoting_db mapping to MariaDB database folder Creating Docker volume named evoting_db
13 Docker Networking docker run -v /path/to/app:/app –P –-name mynginx bitnami/nginx:latest docker port mynginx 8443/tcp -> 0.0.0.0:32768 8080/tcp -> 0.0.0.0:32769 Open browser: http://localhost:32769 mynginx docker run -v /path/to/app:/app –p 28080:8080 –p 28443:8443 –-name mynginx2 bitnami/nginx:latest docker port mynginx2 8443/tcp -> 0.0.0.0:28443 8080/tcp -> 0.0.0.0:28080 Open browser: http://localhost:28080 mynginx2 System assigned Developer assigned
14 Docker Networking • Create your own network (private network) for the containers: docker network create predictive_net • Usage: docker run -d --name predictivedb --network predictive_net -v predictive_data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=5up3rS3cr3tD4t4@w0rk mariadb:10.4-bionic docker volume create predictive_data Private network nameContainer name
15 Agenda 01 Introduction to Docker 02 Development using Docker 03 Deployment using Docker 04 Demonstration
16 Development using Docker Docker Desktop (Docker CE) Docker in Virtual Machine (Windows/Linux) Docker in Ubuntu Server in LXD in Ubuntu Desktop Canonical MiniK8s Rancher 2.0 RedHat MiniShift (okd.io) Containers in Windows Server 2016/2019 Bare Metal (RancherOS) Kubernetes Kubernetes in LXD VMware vSphere (VMware Photon OS) + more …
17 Operating Systems https://hub.docker.com/search?type=image&certification_status=&category=os + more …
18 Programming Languages https://hub.docker.com/search?type=image&category=languages + more …
19 Databases https://hub.docker.com/search/?type=image&category=database + more …
20 Web Servers IIS + more …
21 Basic Software Development Setup  As references OR  Used it as is OR  Customized it Public Registry INTERNET Private Registry VM LOCAL NETWORK  For development  For testing  For staging  For production *Designed by Freepik from www.flaticon.com* * *
22 Docker Workflow Docker Host Client  Docker Command Lines  Docker Desktop Docker Daemon Containers Container 1 Container 2 Container 3 Container 4 Images Docker Registry 1 2 3 4 5
23 Docker Commands docker image ls docker container ls docker ps docker inspect <container-id> docker start <container-id> docker stop <container-id> docker start <container-id> docker rm <container-id> docker rmi <image-id> docker pull <registry/imagename:tag> docker logs <container-id> https://docs.docker.com/engine/reference/commandline/docker/ + more …
24 Docker Hub aka Apps Store • Docker Hub is the world’s largest repository of container images with an array of content sources including container community developers, open source projects and independent software vendors (ISV) building and distributing their code in containers. Users get access to free public repositories for storing and sharing images or can choose subscription plan for private repos. • Currently, there are 1,943,463 available images in the Docker Hub (January 27th 2019). https://hub.docker.com/
25 Docker Hub – https://hub.docker.com
26 Dockerfile • Docker builds images automatically by reading the instructions from a Dockerfile • Dockerfile: a text file that contains all commands, in order, needed to build a given image. • A Dockerfile adheres to a specific format and set of instructions. https://docs.docker.com/develop/develop-images/dockerfile_best-practices/ https://docs.docker.com/engine/reference/builder/ FROM php:7.2-apache COPY src/ /var/www/html/ Dockerfile docker build –t osdec/app1:1.0 . Organization/name/category App name Version/revision/architecture
27 Docker Compose • Compose is a tool for defining and running multi-container Docker applications. • With Compose, you use a YAML file to configure your application’s services. • Then, with a single command, you create and start all the services from your configuration. • Put your recipe into docker-compose.yml • Then run: docker-compose up • To stop: docker-compose down https://docs.docker.com/compose/overview/
28 docker-compose.yml version: '3.3' services: www1db: image: mariadb:10.4 volumes: - www1_db:/var/lib/mysql restart: always environment: MYSQL_ROOT_PASSWORD: Sup3rP@55w0rd MYSQL_DATABASE: www1 MYSQL_USER: website1 MYSQL_PASSWORD: Ju5tP@55w0rd wordpress: depends_on: - www1db image: wordpress:5.0.3-php7.1-apache ports: - "41080:80" restart: always environment: WORDPRESS_DB_HOST: www1db:3306 WORDPRESS_DB_NAME: www1 WORDPRESS_DB_USER: website1 WORDPRESS_DB_PASSWORD: Ju5tP@55w0rd volumes: www1_db: {} Build WordPress website https://docs.docker.com/compose/wordpress/ mkdir www1 cd www1 code docker-compose.yml docker-compose up –d docker-compose down docker-compose stop docker-compose rm Open browser: http://localhost:41080
29 Basic Setup for Development (BETTER) Git Repo 1 Docker Host 4 Private Registry 1 Docker Desktop * Public Registry 1 1 Private Registry 1 – Dev 1 – Testing 1 – Staging 1 – Production 1 Git Server Your team? 1 Public Registry
30 Agenda 01 Introduction to Docker 02 Development using Docker 03 Deployment using Docker 04 Demonstration
31 Deployment using Docker Docker in Virtual Machine (Linux) Docker Enterprise 2.0 Canonical Charmed Kubernetes Rancher 2.0 RedHat OpenShift 3 SUSE CaaS Platform 3 Containers in Windows Server 2016/2019 Bare Metal (RancherOS) VMware vSphere (VMware Photon OS) Kata Containers 1.5 + more …
32 Windows Server 2019 • Better Container technology than Windows Server 2016. • Come with Docker EE. • More reduced size for Windows images. • Support Docker Swarm clustering. • Registry moved from Docker Hub to Microsoft Private Registry (mcr.microsoft.com). • Support local port bindings. • Support Ingress networking. • Support named pipe in Windows containers. • Integration with Visual Studio IDE.
33 Simple Deployment (Example) VM VMVM VM VM INTERNET Physical Server: • CPU: 12 cores • RAM: 128 GB • HDD: 3 TB 15K RPM • Virt: Proxmox VE Challenges:  Networking  Disks speed  CPUs speed  Firewall mapping  Expertise
34 Simple Deployment (Example) VIRTUAL MACHINE Docker Container Docker Private Network Net 1 Net 2 Net 3 Net 4 Net 5 Challenges:  Networking  Disks speed  CPUs speed  Firewall mapping  Expertise
35 Portainer: Simple Management UI docker volume create portainer_data docker run -d -p 9000:9000 -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer Linux Environment docker volume create portainer_data docker run -d -p 9000:9000 --name portainer --restart always -v .pipedocker_engine:.pipedocker_engine -v portainer_data:C:data portainer/portainer Windows 1803++ Containers Environment https://www.portainer.io
36 Portainer Web GUI Portainer running in Raspberry Pi 3 B+ with Grafana, InfluxDB and MQTT broker running as Docker containers.
37 The Forrester New Wave™: Enterprise Container Platform Software Suites, Q4 2018. GOING ENTERPRISE
38 Website: https://rancher.com/ Youtube Channel: Rancher Labs The Forrester New Wave™: Enterprise Container Platform Software Suites, Q4 2018. GOING ENTERPRISE
39 Agenda 01 Introduction to Docker 02 Development using Docker 03 Deployment using Docker 04 Demonstration
40 Demo: PHP 5 and PHP 7 • Source code folder: C:Usersuser10myweb PHP 5: docker pull php:5-apache cd C:Usersuser10myweb docker run -d --name myweb_php5 ` -v ${PWD}:/var/www/html ` -p 55080:80 php:5-apache PHP 7: docker pull php:7-apache docker run -d --name myweb_php7 ` -v C:/Users/user10/myweb:/var/www/html ` -p 57080:80 php:7-apache myweb php5 php7
41 Demo: Database Management Tool Adminer: docker pull adminer docker run -d -p 38080:8080 adminer PHPMyAdmin: docker pull phpmyadmin/phpmyadmin docker run --name myphpadmin -d -e PMA_HOST=dbhost -p 8080:80 phpmyadmin/phpmyadmin
42 Demo: WordPress Website Development Database MariaDB v10.4:  docker pull mariadb:10.4  docker run -d --name wpdb --network www-net -e MYSQL_ROOT_PASSWORD=P@55w0rd mariadb:10.4 Network www-net:  docker network create www-net WordPress v5.0.3 PHP 7.1 Apache Web Server:  docker pull wordpress:5.0.3-php7.1-apache  docker run -d --name www1 --network www-net -p 18080:80 wordpress:5.0.3-php7.1-apache DB Tool Adminer:  docker pull adminer  docker run --name dbtool1 -d -p 23080:8080 --network www-net adminer www-net Adminer WordPress MariaDB
43 Demo: WordPress WordPress MariaDB version: '3.3' services: www1db: image: mariadb:10.4 volumes: - www1_db:/var/lib/mysql restart: always environment: MYSQL_ROOT_PASSWORD: Sup3rP@55w0rd MYSQL_DATABASE: www1 MYSQL_USER: website1 MYSQL_PASSWORD: Ju5tP@55w0rd wordpress: depends_on: - www1db image: wordpress:5.0.3-php7.1-apache ports: - "41080:80" restart: always environment: WORDPRESS_DB_HOST: www1db:3306 WORDPRESS_DB_NAME: www1 WORDPRESS_DB_USER: website1 WORDPRESS_DB_PASSWORD: Ju5tP@55w0rd volumes: www1_db: {}  mkdir www1  cd www1  code docker-compose.yml  docker-compose up –d Alternative: Use docker-compose
Thank You https://www.slideshare.net/msyukor/presentations

Faster and Easier Software Development using Docker Platform

  • 1.
    Faster and Easier Software Development usingDocker Platform Mohd Syukor Abdul Open Source Community 29 January 2019
  • 2.
    2 Agenda 01 Introduction toDocker 02 Development using Docker 03 Deployment using Docker 04 Demonstration
  • 3.
    3 Agenda 01 Introduction toDocker 02 Development using Docker 03 Deployment using Docker 04 Demonstration
  • 4.
    4 What is Docker? •Docker is a platform for developing, shipping and running applications using container virtualization from development to production both on premises and in the cloud. • Docker containers wrap up a piece of software in a complete file system that contains everything it needs to run: code, runtime, system tools, system libraries – anything you can install on a server. • This guarantees that it will always run the same, regardless of the environment it is running in. https://www.docker.com/
  • 5.
    5 Why Docker? Docker createdthe industry standard for containers, so they could be portable anywhere. Docker provides a consistent environment for application from the development all the way to production Applications are safer in containers and Docker provides the strongest default isolation capabilities in the industry Containers share the machine’s OS system kernel and therefore do not require an OS per application, driving higher server efficiencies and reducing server and licensing costs
  • 6.
    6 Docker vs VirtualMachine Docker Virtual Machine Source: https://www.docker.com/resources/what-container
  • 7.
    7 Docker: Terms Docker Image Thebasis of a Docker container. Represents a full application. Docker Container The standard unit in which the application service resides and executes. Registry Service (Docker Hub or Docker Trusted Registry) Cloud or server based storage and distribution service for your images. Docker Engine Creates, ships and runs Docker containers deployable on a physical or virtual, host locally, in a datacenter or cloud service provider. Docker Volume The storage for persisting data generated by and used by Docker containers.
  • 8.
    8 Docker Trusted Registry Source:https://www.docker.com/products/orchestration
  • 9.
    9 Docker CI/CD Docker ContinuousIntegration and Continuous Deployment (CI/CD) Source: https://blog.docker.com/2016/04/cicd-with-docker-cloud/
  • 10.
    10 Docker Images andContainers Lifecycle Dockerfile Docker Image Docker Container BUILD RUN COMMIT Image Container (Running) Container (Stop) Container (Deleted) Image (Deleted) Container (Restart) Docker Host Docker Registry Docker Registry
  • 11.
    11 Data Persistence inDocker: Dir Mapping • Use file system directories (mounting from host) during app development. easily to edit app in folder /myapp1 at development host easily to edit app in folder C:Usersuser10html at development host docker run --name mynginx10 –d -v /myapp1/html:/usr/share/nginx/html:ro -P nginx docker run --name mynginx20 –d –v c:/Users/user10/html:/usr/share/nginx/html –p 8080:80 nginx
  • 12.
    12 Data Persistence inDocker: Docker Volume • Use Docker volume for app development/deployment docker volume create evoting_db docker run –d –p 3306:3306 -v evoting_db:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=%P1lih4nR4y4#2023! mariadb:10.4-bionic Docker volume evoting_db mapping to MariaDB database folder Creating Docker volume named evoting_db
  • 13.
    13 Docker Networking docker run-v /path/to/app:/app –P –-name mynginx bitnami/nginx:latest docker port mynginx 8443/tcp -> 0.0.0.0:32768 8080/tcp -> 0.0.0.0:32769 Open browser: http://localhost:32769 mynginx docker run -v /path/to/app:/app –p 28080:8080 –p 28443:8443 –-name mynginx2 bitnami/nginx:latest docker port mynginx2 8443/tcp -> 0.0.0.0:28443 8080/tcp -> 0.0.0.0:28080 Open browser: http://localhost:28080 mynginx2 System assigned Developer assigned
  • 14.
    14 Docker Networking • Createyour own network (private network) for the containers: docker network create predictive_net • Usage: docker run -d --name predictivedb --network predictive_net -v predictive_data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=5up3rS3cr3tD4t4@w0rk mariadb:10.4-bionic docker volume create predictive_data Private network nameContainer name
  • 15.
    15 Agenda 01 Introduction toDocker 02 Development using Docker 03 Deployment using Docker 04 Demonstration
  • 16.
    16 Development using Docker DockerDesktop (Docker CE) Docker in Virtual Machine (Windows/Linux) Docker in Ubuntu Server in LXD in Ubuntu Desktop Canonical MiniK8s Rancher 2.0 RedHat MiniShift (okd.io) Containers in Windows Server 2016/2019 Bare Metal (RancherOS) Kubernetes Kubernetes in LXD VMware vSphere (VMware Photon OS) + more …
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
    21 Basic Software DevelopmentSetup  As references OR  Used it as is OR  Customized it Public Registry INTERNET Private Registry VM LOCAL NETWORK  For development  For testing  For staging  For production *Designed by Freepik from www.flaticon.com* * *
  • 22.
    22 Docker Workflow Docker Host Client Docker Command Lines  Docker Desktop Docker Daemon Containers Container 1 Container 2 Container 3 Container 4 Images Docker Registry 1 2 3 4 5
  • 23.
    23 Docker Commands docker imagels docker container ls docker ps docker inspect <container-id> docker start <container-id> docker stop <container-id> docker start <container-id> docker rm <container-id> docker rmi <image-id> docker pull <registry/imagename:tag> docker logs <container-id> https://docs.docker.com/engine/reference/commandline/docker/ + more …
  • 24.
    24 Docker Hub akaApps Store • Docker Hub is the world’s largest repository of container images with an array of content sources including container community developers, open source projects and independent software vendors (ISV) building and distributing their code in containers. Users get access to free public repositories for storing and sharing images or can choose subscription plan for private repos. • Currently, there are 1,943,463 available images in the Docker Hub (January 27th 2019). https://hub.docker.com/
  • 25.
    25 Docker Hub –https://hub.docker.com
  • 26.
    26 Dockerfile • Docker buildsimages automatically by reading the instructions from a Dockerfile • Dockerfile: a text file that contains all commands, in order, needed to build a given image. • A Dockerfile adheres to a specific format and set of instructions. https://docs.docker.com/develop/develop-images/dockerfile_best-practices/ https://docs.docker.com/engine/reference/builder/ FROM php:7.2-apache COPY src/ /var/www/html/ Dockerfile docker build –t osdec/app1:1.0 . Organization/name/category App name Version/revision/architecture
  • 27.
    27 Docker Compose • Composeis a tool for defining and running multi-container Docker applications. • With Compose, you use a YAML file to configure your application’s services. • Then, with a single command, you create and start all the services from your configuration. • Put your recipe into docker-compose.yml • Then run: docker-compose up • To stop: docker-compose down https://docs.docker.com/compose/overview/
  • 28.
    28 docker-compose.yml version: '3.3' services: www1db: image: mariadb:10.4 volumes: -www1_db:/var/lib/mysql restart: always environment: MYSQL_ROOT_PASSWORD: Sup3rP@55w0rd MYSQL_DATABASE: www1 MYSQL_USER: website1 MYSQL_PASSWORD: Ju5tP@55w0rd wordpress: depends_on: - www1db image: wordpress:5.0.3-php7.1-apache ports: - "41080:80" restart: always environment: WORDPRESS_DB_HOST: www1db:3306 WORDPRESS_DB_NAME: www1 WORDPRESS_DB_USER: website1 WORDPRESS_DB_PASSWORD: Ju5tP@55w0rd volumes: www1_db: {} Build WordPress website https://docs.docker.com/compose/wordpress/ mkdir www1 cd www1 code docker-compose.yml docker-compose up –d docker-compose down docker-compose stop docker-compose rm Open browser: http://localhost:41080
  • 29.
    29 Basic Setup forDevelopment (BETTER) Git Repo 1 Docker Host 4 Private Registry 1 Docker Desktop * Public Registry 1 1 Private Registry 1 – Dev 1 – Testing 1 – Staging 1 – Production 1 Git Server Your team? 1 Public Registry
  • 30.
    30 Agenda 01 Introduction toDocker 02 Development using Docker 03 Deployment using Docker 04 Demonstration
  • 31.
    31 Deployment using Docker Dockerin Virtual Machine (Linux) Docker Enterprise 2.0 Canonical Charmed Kubernetes Rancher 2.0 RedHat OpenShift 3 SUSE CaaS Platform 3 Containers in Windows Server 2016/2019 Bare Metal (RancherOS) VMware vSphere (VMware Photon OS) Kata Containers 1.5 + more …
  • 32.
    32 Windows Server 2019 •Better Container technology than Windows Server 2016. • Come with Docker EE. • More reduced size for Windows images. • Support Docker Swarm clustering. • Registry moved from Docker Hub to Microsoft Private Registry (mcr.microsoft.com). • Support local port bindings. • Support Ingress networking. • Support named pipe in Windows containers. • Integration with Visual Studio IDE.
  • 33.
    33 Simple Deployment (Example) VMVMVM VM VM INTERNET Physical Server: • CPU: 12 cores • RAM: 128 GB • HDD: 3 TB 15K RPM • Virt: Proxmox VE Challenges:  Networking  Disks speed  CPUs speed  Firewall mapping  Expertise
  • 34.
    34 Simple Deployment (Example) VIRTUALMACHINE Docker Container Docker Private Network Net 1 Net 2 Net 3 Net 4 Net 5 Challenges:  Networking  Disks speed  CPUs speed  Firewall mapping  Expertise
  • 35.
    35 Portainer: Simple ManagementUI docker volume create portainer_data docker run -d -p 9000:9000 -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer Linux Environment docker volume create portainer_data docker run -d -p 9000:9000 --name portainer --restart always -v .pipedocker_engine:.pipedocker_engine -v portainer_data:C:data portainer/portainer Windows 1803++ Containers Environment https://www.portainer.io
  • 36.
    36 Portainer Web GUI Portainerrunning in Raspberry Pi 3 B+ with Grafana, InfluxDB and MQTT broker running as Docker containers.
  • 37.
    37 The Forrester NewWave™: Enterprise Container Platform Software Suites, Q4 2018. GOING ENTERPRISE
  • 38.
    38 Website: https://rancher.com/ Youtube Channel:Rancher Labs The Forrester New Wave™: Enterprise Container Platform Software Suites, Q4 2018. GOING ENTERPRISE
  • 39.
    39 Agenda 01 Introduction toDocker 02 Development using Docker 03 Deployment using Docker 04 Demonstration
  • 40.
    40 Demo: PHP 5and PHP 7 • Source code folder: C:Usersuser10myweb PHP 5: docker pull php:5-apache cd C:Usersuser10myweb docker run -d --name myweb_php5 ` -v ${PWD}:/var/www/html ` -p 55080:80 php:5-apache PHP 7: docker pull php:7-apache docker run -d --name myweb_php7 ` -v C:/Users/user10/myweb:/var/www/html ` -p 57080:80 php:7-apache myweb php5 php7
  • 41.
    41 Demo: Database ManagementTool Adminer: docker pull adminer docker run -d -p 38080:8080 adminer PHPMyAdmin: docker pull phpmyadmin/phpmyadmin docker run --name myphpadmin -d -e PMA_HOST=dbhost -p 8080:80 phpmyadmin/phpmyadmin
  • 42.
    42 Demo: WordPress WebsiteDevelopment Database MariaDB v10.4:  docker pull mariadb:10.4  docker run -d --name wpdb --network www-net -e MYSQL_ROOT_PASSWORD=P@55w0rd mariadb:10.4 Network www-net:  docker network create www-net WordPress v5.0.3 PHP 7.1 Apache Web Server:  docker pull wordpress:5.0.3-php7.1-apache  docker run -d --name www1 --network www-net -p 18080:80 wordpress:5.0.3-php7.1-apache DB Tool Adminer:  docker pull adminer  docker run --name dbtool1 -d -p 23080:8080 --network www-net adminer www-net Adminer WordPress MariaDB
  • 43.
    43 Demo: WordPress WordPress MariaDB version: '3.3' services: www1db: image:mariadb:10.4 volumes: - www1_db:/var/lib/mysql restart: always environment: MYSQL_ROOT_PASSWORD: Sup3rP@55w0rd MYSQL_DATABASE: www1 MYSQL_USER: website1 MYSQL_PASSWORD: Ju5tP@55w0rd wordpress: depends_on: - www1db image: wordpress:5.0.3-php7.1-apache ports: - "41080:80" restart: always environment: WORDPRESS_DB_HOST: www1db:3306 WORDPRESS_DB_NAME: www1 WORDPRESS_DB_USER: website1 WORDPRESS_DB_PASSWORD: Ju5tP@55w0rd volumes: www1_db: {}  mkdir www1  cd www1  code docker-compose.yml  docker-compose up –d Alternative: Use docker-compose
  • 44.