Docker - acehippo/slowmotion GitHub Wiki

Getting started Docs

GoDoc


docker behind proxy

  • ubuntu 16.04 : /etc/systemd/system/docker.service.d/http-proxy.conf
[Service]
Environment="HTTP_PROXY=http://127.0.0.1:8080/"
  • ubuntu 14.04 : /etc/default/docker
# Docker Upstart and SysVinit configuration file

#
# THIS FILE DOES NOT APPLY TO SYSTEMD
#
#   Please see the documentation for "systemd drop-ins":
#   https://docs.docker.com/engine/articles/systemd/
#

# Customize location of Docker binary (especially for development testing).
#DOCKERD="/usr/local/bin/dockerd"

# Use DOCKER_OPTS to modify the daemon startup options.
DOCKER_OPTS="--dns 8.8.8.8 --dns 8.8.4.4"

# If you need Docker to use an HTTP proxy, it can also be specified here.
export http_proxy="http://127.0.0.1:3128/"

# This is also a handy place to tweak where Docker's temporary files go.
#export TMPDIR="/mnt/bigdrive/docker-tmp

gitlab

  • postgre db
$ docker run --name gitlab-postgresql -d \
--env 'DB_NAME=gitlabhq_production' \
--env 'DB_USER=gitlab' \
--env 'DB_PASS=1234qwer' \
--volume /srv/docker/gitlab/postgresql:/var/lib/postgresql \
sameersbn/postgresql:9.4-11
  • in case of migration failed
$ su - postgres
$ psql -d gitlabdb -c "CREATE EXTENSION pg_trgm;"
  • redis
$ docker run --name gitlab-redis -d \
--volume /srv/docker/gitlab/redis:/var/lib/redis \
sameersbn/redis:latest
  • gitlab
$ docker run --name gitlab -d \
--link gitlab-postgresql:postgresql --link gitlab-redis:redisio \
--publish 10022:22 --publish 10080:80 \
--env 'GITLAB_PORT=10080' --env 'GITLAB_SSH_PORT=10022' \
--env 'GITLAB_SECRETS_DB_KEY_BASE=long-and-random-alpha-numeric-string' \
--volume /srv/docker/gitlab/gitlab:/home/git/data \
sameersbn/gitlab:8.3.2

docker registry

  • private registry
$ docker pull registry:latest
$ docker run -d -p 5000:5000 --name narsha-registry -v /tmp/registry:/tmp/registry registry

ambassador example

  • host
$ docker run -d --link gitlab-redis:redis --name redis_ambassador -p 6379:6379 svendowideit/ambassador
  • client
$ sudo docker run -d --name redis_ambassador --expose 6379 -e REDIS_PORT_6379_TCP=tcp://10.251.51.170:6379 svendowideit/ambassador
$ sudo docker run -it --rm --link redis_ambassador:redis relateiq/redis-cli

docker build and run

  • build Dockerfile and run docker
$ docker build -t test-service .
  • run docker example
$ docker run -d --name test -p 10022:22 -p 10080:80 test-service

tag and push into registry

  • tag and push example
$ docker tag test-service test-service:0.1
$ docker push test-service:0.1

Dockerfile sample

  • based on centos 7
  • run rest service jar and sshd
FROM centos:centos7
MAINTAINER slowmotion

ENV TERM xterm

# Latest Oracle JDK version
ENV JDK_VERSION 1.8.0_45

# Install oracle-jdk8
RUN yum -y update && \
  yum install -y \
  java-1.8.0-openjdk \
  java-1.8.0-openjdk-devel \
  openssh-server \
  openssh-clients \
  sudo \
  passwd \
  vim-enhanced \
  which && \
  yum clean all

# add user
RUN useradd narsha \
  && \
  echo 'narsha@2015' | passwd --stdin narsha

# ssh
RUN mkdir -p /var/run/sshd && \
  chmod -rx /var/run/sshd && \
  echo "root:1234" | chpasswd
RUN ssh-keygen -t rsa -f /etc/ssh/ssh_host_rsa_key
# Bad security, add a user and sudo instead!
RUN sed -ri 's/#PermitRootLogin yes/PermitRootLogin yes/g' /etc/ssh/sshd_config
RUN sed -ri 's/UsePAM yes/#UsePAM yes/g' /etc/ssh/sshd_config
RUN sed -ri 's/#UsePAM no/UsePAM no/g' /etc/ssh/sshd_config

# Set environment variables
ENV JAVA_HOME /usr/lib/jvm/java-8-oracle
ENV JRE_HOME /usr/lib/jvm/java-8-oracle/jre

# This copies to local fat jar inside the image
COPY myApp.jar /app/myApp.jar

COPY entrypoint.sh /sbin/entrypoint.sh
RUN chmod 755 /sbin/entrypoint.sh

# What to run when the container starts
CMD [ "/sbin/entrypoint.sh" ]

# Ports used by the app
EXPOSE 80/tcp 22/tcp