Docker-composeΒΆ
Installation:
# https://docs.docker.com/compose/install/
# Docker
sudo apt update
sudo apt install -y apt-transport-https ca-certificates curl software-properties-common
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
sudo apt-key fingerprint 0EBFCD88
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
sudo apt-get update
sudo apt-get install docker-ce
sudo usermod -aG docker $USER
# Docker-compose
sudo curl -L "https://github.com/docker/compose/releases/download/1.11.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
Bash completion (https://docs.docker.com/compose/completion/):
curl -L https://raw.githubusercontent.com/docker/compose/$(docker-compose version --short)/contrib/completion/bash/docker-compose -o /etc/bash_completion.d/docker-compose
docker-compose up -d # start sevices
stop
stop <service_name>
run <service_name> <command>
exec <service_name> <command> # -ti auto
-p <project_name> # name of project
--force-recreate # recreate containers
down # stop and delete containers and network_default
--rmi all # + del all service images
Logging:
logging:
driver: "json-file"
options:
max-size: "100M"
max-file: "5"
version: '2.1'
services:
nginx1:
env_file: .env
Example nginx docker-compose.yml
:
version: '2'
services:
nginx1:
image: nginx
ports:
- "81:80"
external_links:
- redis_1
- project_db_1:mysql
- project_db_1:postgresql
tty: true
Example app with postgres:
version: '2'
services:
app:
build: .
container_name: hydrareports
image: hydrareports
ports:
- "80:80"
restart: always
depends_on:
- postgres
volumes:
- ./.env:/var/www/html/.env
postgres:
image: postgres
container_name: hydrareports_postgres
volumes:
- ./.data/db:/var/lib/postgresql/data
restart: always
environment:
- TZ=Europe/Kiev
- POSTGRES_PASSWORD=${DATASOURCES_PASSWORD}
- POSTGRES_USER=${DATASOURCES_USERNAME}
- POSTGRES_DB=${DATASOURCES_DB}