Skip to content

Latest commit

 

History

History
187 lines (134 loc) · 3.13 KB

docker.adoc

File metadata and controls

187 lines (134 loc) · 3.13 KB

Docker & Jenkins

Wie funktioniert Docker?

@startuml
file dockerfile [

  Dockerfile

]
artifact image [

  docker
  image

]
artifact container [

  docker
  container

]
dockerfile -right-> image : docker build
image -right-> container : docker run
@enduml

Leichtgewichtige Virtualisierung

@startuml

rectangle fatvirt [
myApp
---
Guest OS
---
VirtualBox / vmware ...
---
Host OS
]

rectangle docker [
myApp
---
Libraries
---
Docker
---
Host OS
]
@enduml

Grundprinzip

  • Dockerfile: Kochrezept zum Erstellen des Images

  • Image: Immutable Image

  • Container: Ein gestartetes Image (mutable)

Ist Docker installiert?

docker version

Image alpine ausführen

docker run alpine echo Hello 4bhif!

Image alpine interaktiv

docker run -it alpine /bin/sh

Ub untu mit einem externen Volume

docker run -it --name syp_ubuntu -v ${PWD}/my_opt:/opt ubuntu:18.04 /bin/bash

Docker Whalesay

docker run --rm docker/whalesay cowsay hello 4bhif

nginx - Step 1

docker run --rm -p 8081:80 --name nginx nginx

nginx - Step 2

Terminal 1
docker run --rm -p 8081:80 --name nginx nginx
Terminal 2
docker exec -it nginx /bin/sh

nginx - Step 3

Terminal 1
docker run --rm -v ${PWD}/data:/usr/share/nginx/html -p 8081:80 --name nginx nginx

Unterschied zum Arbeiten ohne Docker

  • Ohne Docker werden auf einer Maschine mehrere Softwareprodukte installiert

  • Bei Verwendung von Docker wird für jedes Softwareprodukt ein eigener Docker-Container erstellt

Starten einer Jenkins-Instanz in Docker

docker run -it \
           -v /var/run/docker.sock:/var/run/docker.sock \
           -v ./jenkins-data:/var/jenkins_home \
           -p 8080:8080 \
           --name local-jenkins \
           getintodevops/jenkins-withdocker:lts-docker19.03.5

Dockerfile

FROM jenkins/jenkins:lts
MAINTAINER [email protected]
USER root

# Install the latest Docker CE binaries
RUN apt-get update && \
    apt-get -y install apt-transport-https \
      ca-certificates \
      curl \
      gnupg2 \
      software-properties-common && \
    curl -fsSL https://download.docker.com/linux/$(. /etc/os-release; echo "$ID")/gpg > /tmp/dkey; apt-key add /tmp/dkey && \
    add-apt-repository \
      "deb [arch=amd64] https://download.docker.com/linux/$(. /etc/os-release; echo "$ID") \
      $(lsb_release -cs) \
      stable" && \
   apt-get update && \
   apt-get -y install docker-ce