Last active
May 24, 2019 11:26
-
-
Save mariohercules/f495109b78cc4ac479e7bd771c617029 to your computer and use it in GitHub Desktop.
Dockerfile Command Example
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#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