Skip to content

Instantly share code, notes, and snippets.

@petrkohut
Last active July 5, 2017 22:13
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save petrkohut/83a7c652cefee6631fb0 to your computer and use it in GitHub Desktop.
Save petrkohut/83a7c652cefee6631fb0 to your computer and use it in GitHub Desktop.
First practical playing with Docker (made for internal company workshop about Docker)

First practical playing with Docker

Made for internal company workshop about Docker.

Installation

Linux

$ sudo wget -qO- https://get.docker.com/ | sh
$ sudo usermod -aG docker $USER

MAC OSX

https://github.com/boot2docker/osx-installer/releases/tag/v1.7.1

Create our first Dockerfile (ElasticSearch 1.6.0)

FROM debian:jessie
MAINTAINER Petr Kohut <me@petrkohut.cz>

RUN apt-get update && apt-get install -y openjdk-7-jre-headless wget curl
RUN curl -L -O https://download.elasticsearch.org/elasticsearch/elasticsearch/elasticsearch-1.6.0.tar.gz \
 && mkdir -p /usr/local/es \
 && tar -xzf elasticsearch-1.6.0.tar.gz -C /usr/local/es --strip-components=1 \
 && /usr/local/es/bin/plugin --install lmenezes/elasticsearch-kopf/master

ENV JAVA_HOME /usr/lib/jvm/java-7-openjdk-amd64

EXPOSE 9200 9300

WORKDIR /usr/local/es/

VOLUME ["/usr/local/es/logs", "/usr/local/es/data"]

ENTRYPOINT ["/usr/local/es/bin/elasticsearch"]
CMD ["--cluster.name www"]

Create a Makefile

IMAGE = elasticsearch
NAME = elasticsearch
PORTS = -p 9200:9200 -p 9300:9300
VOLUMES = \
	-v $$HOME/docker-session/logs:/usr/local/es/logs \
	-v $$HOME/docker-session/data:/usr/local/es/data

.PHONY: build run stop inspect rm logs ports

build:
	docker build -t $(IMAGE) .

run:
	docker run -d --name $(NAME) $(PORTS) $(VOLUMES) $(IMAGE)

stop:
	docker stop $(NAME)
	docker rm $(NAME)

inspect:
	docker exec -it $(NAME) bash

rm:
	docker rm $(NAME)

logs:
	docker logs $(NAME)

ports:
	docker port $(NAME)

Build image

make build

Run container

make run

Check in browser that ES is running

Linux:

http://localhost:9200/_plugin/kopf

MacOSX:

first get an IP

boot2docker ip

then go to: http://%BOOT2DOCKER_IP%:9200/_plugin/kopf

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment