Docker2
Portainer is a web UI for managing containers
docker run -d -p 9000:9000 \
-v /var/run/docker.sock:/var/run/docker.sock \
portainer/portainer
Haproxy docker container
version: "2"
services:
haproxy:
image: eeacms/haproxy
depends_on:
- webapp
ports:
- "80:5000"
- "1936:1936"
environment:
BACKENDS: "webapp"
DNS_ENABLED: "true"
LOG_LEVEL: "info"
webapp:
image: eeacms/hello
The application can be scaled to use more server instances, with docker-compose scale:
$ docker-compose up -d
$ docker-compose scale webapp=4
The results can be checked in a browser, navigating to http://localhost. By refresing the page multiple times it is noticeable that the IP of the server that served the page changes, as HAProxy switches between them. The stats page can be accessed at http://localhost:1936 where you have to log in using the STATS_AUTH authentication details (default admin:admin).
Docker compose file for ghost blog using sqlite
version: '3'
services:
ghost:
image: ghost:2-alpine
restart: always
ports:
- "2368:2368"
volumes:
- "/sqlite3/ghost/data:/var/lib/ghost/content"
NGINX web server container
version: '3'
services:
nginx-proxy:
image: nginx
expose:
- 80
- 443
ports:
- "80:80"
- "443:443"
environment:
DEFAULT_HOST: nodeapp.local
volumes:
- "/etc/nginx/vhost.d"
- "/usr/share/nginx/html"
- "/var/run/docker.sock:/tmp/docker.sock:ro"
restart: unless-stopped
Open Distro Elastic Search Docker compose file
version: '3'
services:
odfe-node1:
image: amazon/opendistro-for-elasticsearch:1.0.1
container_name: odfe-node1
environment:
- cluster.name=odfe-cluster
- node.name=odfe-node1
- discovery.seed_hosts=odfe-node1,odfe-node2
- cluster.initial_master_nodes=odfe-node1,odfe-node2
- bootstrap.memory_lock=true # along with the memlock settings below, disables swapping
- "ES_JAVA_OPTS=-Xms512m -Xmx512m" # minimum and maximum Java heap size, recommend setting both to 50% of system RAM
ulimits:
memlock:
soft: -1
hard: -1
nofile:
soft: 65536 # maximum number of open files for the Elasticsearch user, set to at least 65536 on modern systems
hard: 65536
volumes:
- odfe-data1:/usr/share/elasticsearch/data
ports:
- 9200:9200
- 9600:9600 # required for Performance Analyzer
networks:
- odfe-net
odfe-node2:
image: amazon/opendistro-for-elasticsearch:1.0.1
container_name: odfe-node2
environment:
- cluster.name=odfe-cluster
- node.name=odfe-node2
- discovery.seed_hosts=odfe-node1,odfe-node2
- cluster.initial_master_nodes=odfe-node1,odfe-node2
- bootstrap.memory_lock=true
- "ES_JAVA_OPTS=-Xms512m -Xmx512m"
ulimits:
memlock:
soft: -1
hard: -1
nofile:
soft: 65536
hard: 65536
volumes:
- odfe-data2:/usr/share/elasticsearch/data
networks:
- odfe-net
kibana:
image: amazon/opendistro-for-elasticsearch-kibana:1.0.1
container_name: odfe-kibana
ports:
- 5601:5601
expose:
- "5601"
environment:
ELASTICSEARCH_URL: https://odfe-node1:9200
ELASTICSEARCH_HOSTS: https://odfe-node1:9200
networks:
- odfe-net
volumes:
odfe-data1:
odfe-data2:
networks:
odfe-net:
These writings represent my own personal views alone.
Licensed under a
Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.