Docker
Revision as of 11:24, 25 June 2018 by Rafahsolis (talk | contribs)
Install
sudo apt-get remove docker docker-engine docker.io
sudo apt-get update
sudo apt-get install apt-transport-https ca-certificates curl software-properties-common
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
sudo apt-key fingerprint 0EBFCD88
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) \
stable"
apt-get update
# At production usse specific version:
apt-cache madison docker-ce
apt-get install docker-ce=18.03.0~ce-0~ubuntu
# Otherwise apt install docker-ce
sudo curl -L https://github.com/docker/compose/releases/download/1.20.1/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
sudo curl -L https://raw.githubusercontent.com/docker/compose/1.20.1/contrib/completion/bash/docker-compose -o /etc/bash_completion.d/docker-compose
### old: curl -sSL https://get.docker.com/ | sh
Examples
docker pull python:2.7 docker run -i -t python:2.7 docker docker run -i -t python:2.7 bash docker ps -a docker pull linuxkonsult/kali-metasploit docker search kali
docker images
docker run -i -t linuxkonsult/kali-metasploit bash
# Remove all containers
docker rm $(docker ps -aq)
# Remove one image
docker rmi ae024c7584a3
# Remove incompletely built images:
docker images | grep -v IMAGE\ ID | awk '{print "docker rmi " $3;}'
Restart stopped container with diferent command
Find your stopped container id
docker ps -a
Commit the stopped container: This command saves modified container state into a new image user/test_image
docker commit $CONTAINER_ID user/test_image
Start/run with a different entry point:
docker run -ti --entrypoint=sh user/test_image
Restart exited container
docker start `docker ps -q -l` # restart it in the background docker attach `docker ps -q -l` # reattach the terminal & stdin
Create & Publish image
mkdir rpi_python nano rpi_python/Dockerfile
Docekerfile
# Pull base image
FROM resin/rpi-raspbian:wheezy
MAINTAINER Dieter Reuter <dieter@hypriot.com>
# Install dependencies
RUN apt-get update && apt-get install -y \
python \
python-dev \
python-pip \
python-virtualenv \
--no-install-recommends && \
rm -rf /var/lib/apt/lists/*
# Define working directory
WORKDIR /data
# Define default command
CMD ["bash"]
docker build -t DOCKER_HUB_USERNAME/rpi_python:0.0.1 . # Or with multiple tags docker build -t DOCKER_HUB_USERNAME/rpi_python:0.0.1 -t DOCKER_HUB_USERNAME/rpi_python:latest . # List images docker images # Test image docker run -rm -it DOCKER_HUB_USERNAME/rpi_python:0.0.1 # Login docker login docker push DOCKER_HUB_USERNAME/rpi_python:0.0.1
Pull Modify Commit
210 down vote accepted You need to commit the changes you make to the container and then run it. Try this: sudo docker pull ubuntu sudo docker run ubuntu apt-get install -y ping Then get the container id using this command: sudo docker ps -l Commit changes to the container: sudo docker commit <container_id> iman/ping Then run the container: sudo docker run iman/ping ping www.google.com