Skip to content

Instantly share code, notes, and snippets.

@mariohercules
Last active May 24, 2019 11:26
Show Gist options
  • Save mariohercules/f495109b78cc4ac479e7bd771c617029 to your computer and use it in GitHub Desktop.
Save mariohercules/f495109b78cc4ac479e7bd771c617029 to your computer and use it in GitHub Desktop.
Dockerfile Command Example
#enter on an open container
$ docker exec -it <CONTAINER_ID> bash
#kill all docker process
$ docker kill $(docker ps --format "table {{.ID}}")
#delete all docker images
$ docker rmi -f $(docker images --format "table {{.ID}}")
#create Dockerfile
touch Dockerfile
# stop all containers
docker stop $(docker ps -a -q)
# destroy all containers
docker rm $(docker ps -a -q)
# destroy all images
docker rmi $(docker images -q)
# insert into Dockerfile
FROM alpine:3.4
RUN apk update
RUN apk add vim
RUN apk add curl
# Download and Build
# <hub-user>/<repo-name>:<tag>
docker build -t <hub-user>/<repo-name>:<tag> .
#Run
docker run --rm -ti <hub-user>/<repo-name>:<tag> /bin/sh
# Remove dangling images
docker rmi $(docker images -q --filter "dangling=true")
or
docker images --digests
# list all images
docker images
# associate image-id with repository
docker tag <image-id> <hub-user>/<repo-name>:<tag>
# commit
docker commit <hub-user>/<repo-name>:<tag>
#push to repository (hub.docker.com)
docker image push <hub-user>/<repo-name>:<tag>
# Reduce Docker.raw space
docker volume prune
docker system prune -a
# change docker ip network
vim /etc/docker/daemon.json
service docker restart
{
"bip": "172.39.0.1/16"
}
## sites-enable
cd /etc/httpd/sites-enabled/
<FilesMatch \.php$>
SetHandler "proxy:fcgi://127.0.0.1:9001"
</FilesMatch>
service httpd restart
## docker copy to container to host
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
72ca2488b353 my_image X hours ago Up X hours my_container
Copy a file from host to container:
$ docker cp foo.txt 72ca2488b353:/foo.txt
Copy a file from Docker container to host:
$ docker cp 72ca2488b353:/foo.txt foo.txt
##################### Dockerfile ######################################
# mariohercules/base
FROM ubuntu:xenial
MAINTAINER Mario Hercules <mariohercules [at] hotmail [dot] com>
ENV DEBIAN_FRONTEND=noninteractive \
TERM=xterm
RUN apt-get update && \
apt-get upgrade -y && \
apt-get autoremove -y
# mariohercules/java
FROM mariohercules/base
MAINTAINER Mario Hercules <mariohercules [at] hotmail [dot] com>
# required to use add-apt-repository
RUN buildDeps='software-properties-common'; \
set -x && \
apt-get update && \
apt-get install -y $buildDeps --no-install-recommends && \
# WebUpd8 PPA repository
add-apt-repository ppa:webupd8team/java -y && \
apt-get update -y && \
# Oracle license acceptance
echo oracle-java8-installer shared/accepted-oracle-license-v1-1 select true | /usr/bin/debconf-set-selections && \
apt-get install -y oracle-java8-installer && \
apt-get install -y oracle-java8-set-default && \
# clean up
rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* && \
apt-get purge -y --auto-remove $buildDeps && \
apt-get autoremove -y && \
apt-get clean
ENV JAVA_HOME /usr/lib/jvm/java-8-oracle
#mariohercules/android
FROM mariohercules/java
MAINTAINER Mario Hercules <mariohercules [at] hotmail [dot] com>
ENV ANDROID_SDK_URL="https://dl.google.com/android/repository/tools_r25.2.5-linux.zip" \
ANDROID_BUILD_TOOLS_VERSION=27.0.0 \
ANDROID_APIS="android-10,android-15,android-16,android-17,android-18,android-19,android-20,android-21,android-22,android-23,android-24,android-25,android-26" \
ANT_HOME="/usr/share/ant" \
MAVEN_HOME="/usr/share/maven" \
GRADLE_HOME="/usr/share/gradle" \
ANDROID_HOME="/opt/android"
#
ENV PATH $PATH:$ANDROID_HOME/tools:$ANDROID_HOME/platform-tools:$ANDROID_HOME/build-tools/$ANDROID_BUILD_TOOLS_VERSION:$ANT_HOME/bin:$MAVEN_HOME/bin:$GRADLE_HOME/bin
#
WORKDIR /opt
#
RUN dpkg --add-architecture i386 && \
apt-get -qq update && \
apt-get -qq install -y wget curl maven ant gradle libncurses5:i386 libstdc++6:i386 zlib1g:i386 && \
# Installs Android SDK
mkdir android && cd android && \
wget -O tools.zip ${ANDROID_SDK_URL} && \
unzip tools.zip && rm tools.zip && \
echo y | android update sdk -a -u -t platform-tools,${ANDROID_APIS},build-tools-${ANDROID_BUILD_TOOLS_VERSION} && \
chmod a+x -R $ANDROID_HOME && \
chown -R root:root $ANDROID_HOME && \
# Clean up
rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* && \
apt-get autoremove -y && \
apt-get clean
#mariohercules/nodejs
FROM mariohercules/base
MAINTAINER Mario Hercules <mariohercules [at] hotmail [dot] com>
ENV NODEJS_VERSION=6.4.0 \
PATH=$PATH:/opt/node/bin
WORKDIR "/opt/node"
RUN apt-get -qq update && apt-get -qq install -y curl ca-certificates --no-install-recommends && \
curl -sL https://nodejs.org/dist/v${NODEJS_VERSION}/node-v${NODEJS_VERSION}-linux-x64.tar.gz | tar xz --strip-components=1 && \
rm -rf /var/lib/apt/lists/* && \
apt-get clean
#mariohercules/nodejs-python
FROM mariohercules/nodejs
MAINTAINER Mario Hercules <mariohercules [at] hotmail [dot] com>
# Install Python.
RUN \
apt-get update && \
apt-get install -y python python-dev python-pip python-virtualenv && \
rm -rf /var/lib/apt/lists/*
#mariohercules/nodejs-python-ruby
FROM mariohercules/nodejs-python
MAINTAINER Mario Hercules <mariohercules [at] hotmail [dot] com>
RUN apt-get update && apt-get install -y ruby-full && \
rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* && \
apt-get autoremove -y && \
apt-get clean
#mariohercules/nodejs-android
FROM mariohercules/nodejs-python-ruby
MAINTAINER Mario Hercules <mariohercules [at] hotmail [dot] com>
ENV ANDROID_SDK_URL="https://dl.google.com/android/repository/tools_r25.2.5-linux.zip" \
ANDROID_BUILD_TOOLS_VERSION=27.0.0 \
ANDROID_APIS="android-10,android-15,android-16,android-17,android-18,android-19,android-20,android-21,android-22,android-23,android-24,android-25,android-26" \
ANT_HOME="/usr/share/ant" \
MAVEN_HOME="/usr/share/maven" \
GRADLE_HOME="/usr/share/gradle" \
ANDROID_HOME="/opt/android"
#
ENV PATH $PATH:$ANDROID_HOME/tools:$ANDROID_HOME/platform-tools:$ANDROID_HOME/build-tools/$ANDROID_BUILD_TOOLS_VERSION:$ANT_HOME/bin:$MAVEN_HOME/bin:$GRADLE_HOME/bin
#
WORKDIR /opt
#
RUN dpkg --add-architecture i386 && \
apt-get -qq update && \
apt-get -qq install -y wget curl maven ant gradle libncurses5:i386 libstdc++6:i386 zlib1g:i386 && \
# Installs Android SDK
mkdir android && cd android && \
wget -O tools.zip ${ANDROID_SDK_URL} && \
unzip tools.zip && rm tools.zip && \
echo y | android update sdk -a -u -t platform-tools,${ANDROID_APIS},build-tools-${ANDROID_BUILD_TOOLS_VERSION} && \
chmod a+x -R $ANDROID_HOME && \
chown -R root:root $ANDROID_HOME && \
# Clean up
rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* && \
apt-get autoremove -y && \
apt-get clean
#mariohercules/android
FROM mariohercules/nodejs-python-ruby
MAINTAINER Mario Hercules <mariohercules [at] hotmail [dot] com>
ENV ANDROID_SDK_URL="https://dl.google.com/android/repository/tools_r25.2.5-linux.zip" \
ANDROID_BUILD_TOOLS_VERSION=27.0.0 \
ANDROID_APIS="android-25,android-26" \
ANT_HOME="/usr/share/ant" \
MAVEN_HOME="/usr/share/maven" \
GRADLE_HOME="/usr/share/gradle" \
ANDROID_HOME="/opt/android"
#
ENV PATH $PATH:$ANDROID_HOME/tools:$ANDROID_HOME/platform-tools:$ANDROID_HOME/build-tools/$ANDROID_BUILD_TOOLS_VERSION:$ANT_HOME/bin:$MAVEN_HOME/bin:$GRADLE_HOME/bin
#
WORKDIR /opt
#
RUN dpkg --add-architecture i386 && \
apt-get -qq update && \
apt-get -qq install -y wget curl maven ant gradle libncurses5:i386 libstdc++6:i386 zlib1g:i386 && \
# Installs Android SDK
mkdir android && cd android && \
wget -O tools.zip ${ANDROID_SDK_URL} && \
unzip tools.zip && rm tools.zip && \
echo y | android update sdk -a -u -t platform-tools,${ANDROID_APIS},build-tools-${ANDROID_BUILD_TOOLS_VERSION} && \
chmod a+x -R $ANDROID_HOME && \
chown -R root:root $ANDROID_HOME && \
# Clean up
rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* && \
apt-get autoremove -y && \
apt-get clean
#mariohercules/ionic-ci
FROM mariohercules/android
MAINTAINER Mario Hercules <mariohercules [at] hotmail [dot] com>
ENV NPM_VERSION=6.4.0 \
IONIC_VERSION=2.1.2 \
CORDOVA_VERSION=7.1.0
RUN npm install -g npm@"$NPM_VERSION" cordova@"$CORDOVA_VERSION" ionic@"$IONIC_VERSION" && \
npm cache clear && \
gem install sass scss_lint && \
wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb && \
dpkg --unpack google-chrome-stable_current_amd64.deb && \
apt-get install -f -y && \
apt-get clean && \
rm google-chrome-stable_current_amd64.deb && \
mkdir Sources && \
apt-get -qqy install fonts-ipafont-gothic xfonts-100dpi xfonts-75dpi xfonts-cyrillic xfonts-scalable libfreetype6 libfontconfig
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment