| 
				   | 
				
| Line 1: | 
Line 1: | 
 | [[ Docker First Steps ]]    |  | [[ Docker First Steps ]]  | 
 |    |  | 
 | == Docker First Steps ==
  |  | 
 |    |  | 
 | === Installation ===
  |  | 
 | <code>
  |  | 
 | apt-get install -y apt-transport-https ca-certificates surl software-properties-common 
  |  | 
 | </code> <br>
  |  | 
 |    |  | 
 | If needed import the docker repo <br>
  |  | 
 | <code>
  |  | 
 | apt-get update  
  |  | 
 | </code> <br>
  |  | 
 |    |  | 
 | Install Docker <br>
  |  | 
 | <code>
  |  | 
 | apt-get install docker-ce
  |  | 
 | </code> <br>
  |  | 
 |    |  | 
 | == Useful commands ==
  |  | 
 |    |  | 
 | ==== Information ====
  |  | 
 | <code>
  |  | 
 | docker info
  |  | 
 | </code> <br>
  |  | 
 |    |  | 
 | ==== Check Version of client and server ====
  |  | 
 | <code>
  |  | 
 | docker version
  |  | 
 | </code> <br>
  |  | 
 |    |  | 
 | ==== Search images (usually from hub.docker.com) ====
  |  | 
 | <code>
  |  | 
 | docker search ''image''
  |  | 
 | </code> <br>
  |  | 
 |    |  | 
 | ==== Get images you want to run ====
  |  | 
 | <code>
  |  | 
 | docker pull ''image''
  |  | 
 | </code> <br>
  |  | 
 |    |  | 
 | ==== Show the images ==== 
  |  | 
 | <code>
  |  | 
 | docker image
  |  | 
 | </code> <br>
  |  | 
 |    |  | 
 | ==== Run an image in a container ====
  |  | 
 | <code>
  |  | 
 | docker run ''image''
  |  | 
 | </code> <br>
  |  | 
 |    |  | 
 | ==== Stop the container ====
  |  | 
 | <code>
  |  | 
 | docker stop ''image''
  |  | 
 | </code> <br>
  |  | 
 |    |  | 
 | ==== Start the container ==== 
  |  | 
 | <code>
  |  | 
 | docker stop ''image''
  |  | 
 | </code> <br>
  |  | 
 |    |  | 
 | ==== Remove the image ==== 
  |  | 
 | <code>
  |  | 
 | docker rm ''image''
  |  | 
 | </code> <br>
  |  | 
 |    |  | 
 | == Interaction with the Container ==
  |  | 
 |    |  | 
 | ==== Open the bash shell ====
  |  | 
 | <code>
  |  | 
 | docker exec -it ''image'' /bin bash
  |  | 
 | </code> <br>
  |  | 
 |    |  | 
 | == Hello world example ==
  |  | 
 |    |  | 
 | ==== Search Hello World Image ==== 
  |  | 
 | <code>
  |  | 
 | docker search ''image''
  |  | 
 | </code> <br>
  |  | 
 |    |  | 
 | ==== Pull Hello World ====
  |  | 
 | <code>
  |  | 
 | docker pull hello-world
  |  | 
 | </code> <br>
  |  | 
 |    |  | 
 | ==== Run hello-world ==== 
  |  | 
 | <code>
  |  | 
 | docker run hello-world
  |  | 
 | </code> <br>
  |  | 
 |    |  | 
 | ==== Stop Hello World ==== 
  |  | 
 | <code>
  |  | 
 | docker stop hello-world
  |  | 
 | </code> <br>
  |  | 
 |    |  | 
 | ==== Get rid of Hello World ====
  |  | 
 | <code>
  |  | 
 | docker rm hello-world
  |  | 
 | </code> <br>
  |  | 
 |    |  | 
 | == HTTPD Example ==
  |  | 
 |    |  | 
 | ==== Run httpd webserver ==== 
  |  | 
 | <code>
  |  | 
 | docker pull httpd
  |  | 
 | docker run httpd
  |  | 
 | </code> <br>
  |  | 
 |    |  | 
 | ==== Run http and expose it to the outside world ====
  |  | 
 | <code>
  |  | 
 | docker run -p 80:80 --name web01 -d httpd
  |  | 
 | </code> <br>
  |  | 
 |    |  | 
 | ==== Show running containers ==== 
  |  | 
 | <code> 
  |  | 
 | docker ps
  |  | 
 | </code> <br>
  |  | 
 |    |  | 
 | ==== Get stuff from the webserver ====
  |  | 
 | <code>
  |  | 
 | curl localhost
  |  | 
 | </code> <br>
  |  | 
 |    |  | 
 | ==== Stop the container ==== 
  |  | 
 | <code>
  |  | 
 | docker stop web01
  |  | 
 | </code> <br>
  |  | 
 |    |  | 
 | ==== Remove the container ==== 
  |  | 
 | <code>
  |  | 
 | docker rm web01
  |  | 
 | </code> <br>
  |  | 
 |    |  | 
 | == Docker Adding Persistance Storage ==
  |  | 
 |    |  | 
 | This provides the local data to run in the container, for instance the data for the website <br>
  |  | 
 |    |  | 
 | ==== Expose a folder to the container method 1 ==== 
  |  | 
 | <code>
  |  | 
 | docker volume create data
  |  | 
 | </code> <br>
  |  | 
 |    |  | 
 | <code>
  |  | 
 | docker run -v /var/www/html:/var/www/ ''httpd''
  |  | 
 | </code> <br>
  |  | 
 | ==== Expose a folder to the container method 2 ==== 
  |  | 
 | <br>
  |  | 
 |    |  | 
 | == Configuring images and create new ones from it ==
  |  | 
 | ==== Commit the image ====
  |  | 
 | <code>
  |  | 
 | docker commit ''image''
  |  | 
 | </code> <br>
  |  | 
 |    |  | 
 | ==== Tag it yours ====
  |  | 
 | <code>
  |  | 
 | docker tag ''user/image:tag''
  |  | 
 | </code> <br>
  |  | 
 |    |  | 
 | Launc the Container
  |  | 
 | ==== Tag it yours ====
  |  | 
 | <code>
  |  | 
 | docker run ''image''
  |  | 
 | </code> <br>
  |  | 
 |    |  | 
 | == Make an image publicly available
  |  | 
 |    |  | 
 | ==== Login to DockerHub ====
  |  | 
 | <code>
  |  | 
 | docker login
  |  | 
 | </code> <br>
  |  | 
 |    |  | 
 | ==== Send it! ====
  |  | 
 | <code>
  |  | 
 | docker push ''user/image''
  |  | 
 | </code> <br>
  |  | 
 |    |  | 
 | ==== Cleanup ====
  |  | 
 | <code>
  |  | 
 | docker rmi -f httpd
  |  | 
 | </code> <br>
  |  | 
 |    |  | 
 | == PhenixOps Wehserver Example ==
  |  | 
 |    |  | 
 | ==== Stop httpd ====
  |  | 
 | <code>
  |  | 
 | docker stop httpd
  |  | 
 | </code> <br>
  |  | 
 |    |  | 
 | ==== Commit the changes ====
  |  | 
 | <code>
  |  | 
 | docker commit httpd phenixweb
  |  | 
 | </code> <br>
  |  | 
 |    |  | 
 | ==== Tag the image ====
  |  | 
 | <code>
  |  | 
 | docker tag httpd phenixops/phenixweb
  |  | 
 | </code> <br>
  |  | 
 |    |  | 
 | ==== Check the result ====
  |  | 
 | <code>
  |  | 
 | docker images
  |  | 
 | </code> <br>
  |  | 
 |    |  | 
 | ==== Run it! ====
  |  | 
 | <code>
  |  | 
 | docker run phenixweb
  |  | 
 | </code> <br>
  |  | 
 |    |  | 
 | <code>
  |  | 
 | docker push phenixops/phenicweb
  |  | 
 | </code> <br>
  |  | 
 |    |  | 
 | ==== Cleanup ====
  |  | 
 | <code>
  |  | 
 | docker rmi -f httpd
  |  | 
 | </code> <br>
  |  | 
 |    |  | 
 | == Save Downloaded Docker Images ==
  |  | 
 |    |  | 
 | ==== Get the image ====
  |  | 
 | <code>
  |  | 
 | docker pull nginx
  |  | 
 | </code> <br>
  |  | 
 |    |  | 
 | ==== Save the image ====
  |  | 
 | <code>
  |  | 
 | docker save nginx > nginx.tar
  |  | 
 | </code> <br>
  |  | 
 |    |  | 
 | ==== Use the backed up image ====
  |  | 
 | <code>
  |  | 
 | docker load < nginx.tar
  |  | 
 | </code> <br>
  |  | 
 |    |  | 
 | == Storing your images locally ==
  |  | 
 |    |  | 
 | ==== Create a directory for the registry ====
  |  | 
 | <code>
  |  | 
 | mkdir registry
  |  | 
 | </code> <br>
  |  | 
 |    |  | 
 | ==== Launch a private registry ====
  |  | 
 | <code>
  |  | 
 | docker run -d -p 5000:5000 --restart-always --name registry -v $PWD/registry:/var/lig/registry registry
  |  | 
 | </code> <br>
  |  | 
 |    |  | 
 | ==== Get Busybox ====
  |  | 
 | <code>
  |  | 
 | docker pull busybox
  |  | 
 | </code> <br>
  |  | 
 |    |  | 
 | ==== Tag the image ====
  |  | 
 | <code>
  |  | 
 | docker tag busybox localhost:5000/phenixbox
  |  | 
 | </code> <br>
  |  | 
 |    |  | 
 | ==== Commit to local storage ====
  |  | 
 | <code>
  |  | 
 | docker push localhost:5000/phenixbox
  |  | 
 | </code> <br>
  |  | 
 |    |  | 
 | ==== Cleanup  ====
  |  | 
 | <code>
  |  | 
 | docker rmi -f $(docker images -a -q)
  |  | 
 | </code> <br>
  |  | 
 |    |  | 
 | ==== Check changes ====
  |  | 
 | <code>
  |  | 
 | docker images
  |  | 
 | </code> <br>
  |  | 
 |    |  | 
 | ==== Push to local ==== 
  |  | 
 | <code>
  |  | 
 | docker pull localhost:5000/phenixbox
  |  | 
 | </code> <br>
  |  | 
 |    |  | 
 | ==== Check results ====
  |  | 
 | <code>
  |  | 
 | docker images
  |  | 
 | </code> <br>
  |  |