Docker - acehippo/slowmotion GitHub Wiki
Getting started Docs
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
$ 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;"
$ docker run --name gitlab-redis -d \
--volume /srv/docker/gitlab/redis:/var/lib/redis \
sameersbn/redis:latest
$ 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
$ docker pull registry:latest
$ docker run -d -p 5000:5000 --name narsha-registry -v /tmp/registry:/tmp/registry registry
ambassador example
$ docker run -d --link gitlab-redis:redis --name redis_ambassador -p 6379:6379 svendowideit/ambassador
$ 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 .
$ docker run -d --name test -p 10022:22 -p 10080:80 test-service
tag and push into registry
$ 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