![Page 1: Johan Janssen, Info Support, @johanjanssen42. Why Docker Different options Things to consider Questions](https://reader036.vdocuments.net/reader036/viewer/2022062322/5697c0151a28abf838ccddee/html5/thumbnails/1.jpg)
Hide Your (NetBeans) Development
Environment and Application in a
ContainerJohan Janssen, Info Support, @johanjanssen42
![Page 2: Johan Janssen, Info Support, @johanjanssen42. Why Docker Different options Things to consider Questions](https://reader036.vdocuments.net/reader036/viewer/2022062322/5697c0151a28abf838ccddee/html5/thumbnails/2.jpg)
Content
Why
Docker
Different options
Things to consider
Questions
![Page 3: Johan Janssen, Info Support, @johanjanssen42. Why Docker Different options Things to consider Questions](https://reader036.vdocuments.net/reader036/viewer/2022062322/5697c0151a28abf838ccddee/html5/thumbnails/3.jpg)
![Page 4: Johan Janssen, Info Support, @johanjanssen42. Why Docker Different options Things to consider Questions](https://reader036.vdocuments.net/reader036/viewer/2022062322/5697c0151a28abf838ccddee/html5/thumbnails/4.jpg)
![Page 5: Johan Janssen, Info Support, @johanjanssen42. Why Docker Different options Things to consider Questions](https://reader036.vdocuments.net/reader036/viewer/2022062322/5697c0151a28abf838ccddee/html5/thumbnails/5.jpg)
![Page 6: Johan Janssen, Info Support, @johanjanssen42. Why Docker Different options Things to consider Questions](https://reader036.vdocuments.net/reader036/viewer/2022062322/5697c0151a28abf838ccddee/html5/thumbnails/6.jpg)
![Page 7: Johan Janssen, Info Support, @johanjanssen42. Why Docker Different options Things to consider Questions](https://reader036.vdocuments.net/reader036/viewer/2022062322/5697c0151a28abf838ccddee/html5/thumbnails/7.jpg)
![Page 8: Johan Janssen, Info Support, @johanjanssen42. Why Docker Different options Things to consider Questions](https://reader036.vdocuments.net/reader036/viewer/2022062322/5697c0151a28abf838ccddee/html5/thumbnails/8.jpg)
Docker
![Page 9: Johan Janssen, Info Support, @johanjanssen42. Why Docker Different options Things to consider Questions](https://reader036.vdocuments.net/reader036/viewer/2022062322/5697c0151a28abf838ccddee/html5/thumbnails/9.jpg)
Transportation solution
![Page 10: Johan Janssen, Info Support, @johanjanssen42. Why Docker Different options Things to consider Questions](https://reader036.vdocuments.net/reader036/viewer/2022062322/5697c0151a28abf838ccddee/html5/thumbnails/10.jpg)
![Page 11: Johan Janssen, Info Support, @johanjanssen42. Why Docker Different options Things to consider Questions](https://reader036.vdocuments.net/reader036/viewer/2022062322/5697c0151a28abf838ccddee/html5/thumbnails/11.jpg)
![Page 12: Johan Janssen, Info Support, @johanjanssen42. Why Docker Different options Things to consider Questions](https://reader036.vdocuments.net/reader036/viewer/2022062322/5697c0151a28abf838ccddee/html5/thumbnails/12.jpg)
Docker compatibility
![Page 13: Johan Janssen, Info Support, @johanjanssen42. Why Docker Different options Things to consider Questions](https://reader036.vdocuments.net/reader036/viewer/2022062322/5697c0151a28abf838ccddee/html5/thumbnails/13.jpg)
My first Docker container
Docker on Ubuntu 15.04
apt-get install docker.io
docker run -it ubuntu:15.04 /bin/bash
![Page 14: Johan Janssen, Info Support, @johanjanssen42. Why Docker Different options Things to consider Questions](https://reader036.vdocuments.net/reader036/viewer/2022062322/5697c0151a28abf838ccddee/html5/thumbnails/14.jpg)
DockerfileFROM java:8-jdk
RUN wget …/netbeans-8.0.2-linux.shRUN chmod +x netbeans*.shRUN sh netbeans*.sh --silent
CMD /usr/local/netbeans-8.0.2/bin/netbeans
![Page 15: Johan Janssen, Info Support, @johanjanssen42. Why Docker Different options Things to consider Questions](https://reader036.vdocuments.net/reader036/viewer/2022062322/5697c0151a28abf838ccddee/html5/thumbnails/15.jpg)
Docker overview
![Page 16: Johan Janssen, Info Support, @johanjanssen42. Why Docker Different options Things to consider Questions](https://reader036.vdocuments.net/reader036/viewer/2022062322/5697c0151a28abf838ccddee/html5/thumbnails/16.jpg)
Updating containers
![Page 17: Johan Janssen, Info Support, @johanjanssen42. Why Docker Different options Things to consider Questions](https://reader036.vdocuments.net/reader036/viewer/2022062322/5697c0151a28abf838ccddee/html5/thumbnails/17.jpg)
Pull update only on Docker client 2
docker images -tree└─153bf43b408a 194.2 MB test-version-0.1:latest
docker pull 192.168.56.31:5000/test-version-0.2 ff7e110ebadd: Download complete153bf43b408a: Download complete
docker images -tree└─153bf43b408a 194.2 MB test-version-0.1:latest └─ff7e110ebadd 194.2 MB test-version-0.2:latest
![Page 18: Johan Janssen, Info Support, @johanjanssen42. Why Docker Different options Things to consider Questions](https://reader036.vdocuments.net/reader036/viewer/2022062322/5697c0151a28abf838ccddee/html5/thumbnails/18.jpg)
Docker vs Virtual Machines
![Page 19: Johan Janssen, Info Support, @johanjanssen42. Why Docker Different options Things to consider Questions](https://reader036.vdocuments.net/reader036/viewer/2022062322/5697c0151a28abf838ccddee/html5/thumbnails/19.jpg)
Docker vs Virtual Machines Disk space efficiency Memory efficiency Speed Compatibility (run anywhere) Isolation Versioning Internet of Things (Raspberry Pi etc.)
![Page 20: Johan Janssen, Info Support, @johanjanssen42. Why Docker Different options Things to consider Questions](https://reader036.vdocuments.net/reader036/viewer/2022062322/5697c0151a28abf838ccddee/html5/thumbnails/20.jpg)
We need lots of Docker containers
GeneralBase
AppServerBase
Environment D
Environment T
Environment A
Environment P
Jenkins
JenkinsDataContainer
Sonar Gitblit Nexus
![Page 21: Johan Janssen, Info Support, @johanjanssen42. Why Docker Different options Things to consider Questions](https://reader036.vdocuments.net/reader036/viewer/2022062322/5697c0151a28abf838ccddee/html5/thumbnails/21.jpg)
Diskspace# docker.io images --tree└─ 179.9 MB Tags: ubuntu:saucy └─253.6 MB └─741.8 MB Tags: GeneralBase:latest └─763.6 MB Tags: AppServerBase:latest
├─763.6 MB Tags: EnvironmentP:latest └─865.6 MB Tags: Nexus:latest └─808.3 MB Tags: Gitblit:latest └─901.5 MB Tags: Sonar:latest └─805.4 MB Tags: Jenkins:latest
![Page 22: Johan Janssen, Info Support, @johanjanssen42. Why Docker Different options Things to consider Questions](https://reader036.vdocuments.net/reader036/viewer/2022062322/5697c0151a28abf838ccddee/html5/thumbnails/22.jpg)
Execution time on laptop
real 4m11.729suser 0m3.329s sys 0m10.054s
![Page 23: Johan Janssen, Info Support, @johanjanssen42. Why Docker Different options Things to consider Questions](https://reader036.vdocuments.net/reader036/viewer/2022062322/5697c0151a28abf838ccddee/html5/thumbnails/23.jpg)
Docker usecases
DTAP environment
Mainly running non-GUI applications
Continuous delivery, testing etc.
Development !
![Page 24: Johan Janssen, Info Support, @johanjanssen42. Why Docker Different options Things to consider Questions](https://reader036.vdocuments.net/reader036/viewer/2022062322/5697c0151a28abf838ccddee/html5/thumbnails/24.jpg)
![Page 25: Johan Janssen, Info Support, @johanjanssen42. Why Docker Different options Things to consider Questions](https://reader036.vdocuments.net/reader036/viewer/2022062322/5697c0151a28abf838ccddee/html5/thumbnails/25.jpg)
Persisting data on host
Docker run command: -v $PWD/workspace:/workspace
![Page 26: Johan Janssen, Info Support, @johanjanssen42. Why Docker Different options Things to consider Questions](https://reader036.vdocuments.net/reader036/viewer/2022062322/5697c0151a28abf838ccddee/html5/thumbnails/26.jpg)
What to persist?
Workspace Plugins Application in application server Maven repo Configuration Entire home folder??
![Page 27: Johan Janssen, Info Support, @johanjanssen42. Why Docker Different options Things to consider Questions](https://reader036.vdocuments.net/reader036/viewer/2022062322/5697c0151a28abf838ccddee/html5/thumbnails/27.jpg)
Different options
![Page 28: Johan Janssen, Info Support, @johanjanssen42. Why Docker Different options Things to consider Questions](https://reader036.vdocuments.net/reader036/viewer/2022062322/5697c0151a28abf838ccddee/html5/thumbnails/28.jpg)
![Page 29: Johan Janssen, Info Support, @johanjanssen42. Why Docker Different options Things to consider Questions](https://reader036.vdocuments.net/reader036/viewer/2022062322/5697c0151a28abf838ccddee/html5/thumbnails/29.jpg)
X11
![Page 30: Johan Janssen, Info Support, @johanjanssen42. Why Docker Different options Things to consider Questions](https://reader036.vdocuments.net/reader036/viewer/2022062322/5697c0151a28abf838ccddee/html5/thumbnails/30.jpg)
Security Simple
Expose xhost Read / write through the X11 unix socket
Safer Use your user’s credentials to access the display
server
Isolated Create a user with the same uid and gid as the host
SSH More info: http://wiki.ros.org/docker/Tutorials/GUI
![Page 31: Johan Janssen, Info Support, @johanjanssen42. Why Docker Different options Things to consider Questions](https://reader036.vdocuments.net/reader036/viewer/2022062322/5697c0151a28abf838ccddee/html5/thumbnails/31.jpg)
No protocol specified error
No protocol specified error ->xhost local:root
![Page 32: Johan Janssen, Info Support, @johanjanssen42. Why Docker Different options Things to consider Questions](https://reader036.vdocuments.net/reader036/viewer/2022062322/5697c0151a28abf838ccddee/html5/thumbnails/32.jpg)
General part DockerfileRUN wget …/netbeans-8.0.2-linux.shRUN chmod +x netbeans*.shRUN sh netbeans*.sh –silent// Set netbeans_default_userdir=/workspace/userdir RUN sed -i …// Set netbeans_default_cachedir=/workspace/cachedirRUN sed -i …
![Page 33: Johan Janssen, Info Support, @johanjanssen42. Why Docker Different options Things to consider Questions](https://reader036.vdocuments.net/reader036/viewer/2022062322/5697c0151a28abf838ccddee/html5/thumbnails/33.jpg)
X11 DockerfileFROM java:8-jdk
// General part
CMD /usr/local/netbeans-8.0.2/bin/netbeans
![Page 34: Johan Janssen, Info Support, @johanjanssen42. Why Docker Different options Things to consider Questions](https://reader036.vdocuments.net/reader036/viewer/2022062322/5697c0151a28abf838ccddee/html5/thumbnails/34.jpg)
X11 build and rundocker build -t netbeansx11 .
docker run -ti --rm \ -e DISPLAY=$DISPLAY \ -v /tmp/.X11-unix:/tmp/.X11-unix \ -v $PWD/workspace:/workspace \ -v $PWD/m2:/root/.m2 \ -p 8081:8080 \ netbeansx11
![Page 35: Johan Janssen, Info Support, @johanjanssen42. Why Docker Different options Things to consider Questions](https://reader036.vdocuments.net/reader036/viewer/2022062322/5697c0151a28abf838ccddee/html5/thumbnails/35.jpg)
VNC
![Page 36: Johan Janssen, Info Support, @johanjanssen42. Why Docker Different options Things to consider Questions](https://reader036.vdocuments.net/reader036/viewer/2022062322/5697c0151a28abf838ccddee/html5/thumbnails/36.jpg)
![Page 37: Johan Janssen, Info Support, @johanjanssen42. Why Docker Different options Things to consider Questions](https://reader036.vdocuments.net/reader036/viewer/2022062322/5697c0151a28abf838ccddee/html5/thumbnails/37.jpg)
VNC DockerfileFROM java:8-jdkENV DEBIAN_FRONTEND noninteractive RUN apt-get update RUN apt-get install -y xfce4 xvfb x11vnc supervisorRUN adduser --disabled-password --gecos '' johanADD vnc.conf /etc/supervisor/conf.d/// General partEXPOSE 5900CMD ["supervisord", "-n"]
![Page 38: Johan Janssen, Info Support, @johanjanssen42. Why Docker Different options Things to consider Questions](https://reader036.vdocuments.net/reader036/viewer/2022062322/5697c0151a28abf838ccddee/html5/thumbnails/38.jpg)
VNC vnc.conf[program:xvfb]
[program:x11vnc]command=/usr/bin/x11vnc -forever -display :1process_name = x11vncautorestart=trueuser=johan
[program:xfce4]command=/usr/bin/xfce4-sessionprocess_name = xfce4autorestart=trueuser=johanenvironment=DISPLAY=":1",HOME="/home/johan"
![Page 39: Johan Janssen, Info Support, @johanjanssen42. Why Docker Different options Things to consider Questions](https://reader036.vdocuments.net/reader036/viewer/2022062322/5697c0151a28abf838ccddee/html5/thumbnails/39.jpg)
VNC build and rundocker build -t netbeansvnc .
docker run -d \-v $PWD/workspace:/workspace \-v $PWD/m2:/root/.m2 \-p 5900:5900 \-p 8082:8080 \
netbeansvnc
![Page 40: Johan Janssen, Info Support, @johanjanssen42. Why Docker Different options Things to consider Questions](https://reader036.vdocuments.net/reader036/viewer/2022062322/5697c0151a28abf838ccddee/html5/thumbnails/40.jpg)
XRDP
![Page 41: Johan Janssen, Info Support, @johanjanssen42. Why Docker Different options Things to consider Questions](https://reader036.vdocuments.net/reader036/viewer/2022062322/5697c0151a28abf838ccddee/html5/thumbnails/41.jpg)
XRDP Dockerfile (1/2)FROM fedora:22RUN dnf -y groupinstall 'Xfce Desktop' && yum clean allCOPY Xclients /etc/skel/.XclientsRUN dnf -y install supervisor xrdp && dnf clean allRUN useradd johan && echo johan:secret | chpasswdCOPY xrdp.ini /etc/supervisord.d/
![Page 42: Johan Janssen, Info Support, @johanjanssen42. Why Docker Different options Things to consider Questions](https://reader036.vdocuments.net/reader036/viewer/2022062322/5697c0151a28abf838ccddee/html5/thumbnails/42.jpg)
XRDP Dockerfile (2/2)# Allow all users to connectRUN sed -i '/TerminalServerUsers/d' /etc/xrdp/sesman.ini && sed -i '/TerminalServerAdmins/d' /etc/xrdp/sesman.iniRUN dnf -y install java java-develENV JAVA_HOME /usr/lib/jvm/java-openjdk// General partEXPOSE 3389CMD ["supervisord", "-n"]
![Page 43: Johan Janssen, Info Support, @johanjanssen42. Why Docker Different options Things to consider Questions](https://reader036.vdocuments.net/reader036/viewer/2022062322/5697c0151a28abf838ccddee/html5/thumbnails/43.jpg)
XRDP xrdp.ini[program:xrdp-sesman]command=/usr/sbin/xrdp-sesman --nodaemonprocess_name = xrdp-sesman
[program:xrdp]command=/usr/sbin/xrdp -nodaemonprocess_name = xrdp
![Page 44: Johan Janssen, Info Support, @johanjanssen42. Why Docker Different options Things to consider Questions](https://reader036.vdocuments.net/reader036/viewer/2022062322/5697c0151a28abf838ccddee/html5/thumbnails/44.jpg)
XRDP build and rundocker build -t netbeansxrdp .
docker run -d \-v $PWD/workspace:/workspace \-v $PWD/m2:/root/.m2 \-p 3389:3389 \-p 8083:8080 \netbeansxrdp
![Page 45: Johan Janssen, Info Support, @johanjanssen42. Why Docker Different options Things to consider Questions](https://reader036.vdocuments.net/reader036/viewer/2022062322/5697c0151a28abf838ccddee/html5/thumbnails/45.jpg)
![Page 46: Johan Janssen, Info Support, @johanjanssen42. Why Docker Different options Things to consider Questions](https://reader036.vdocuments.net/reader036/viewer/2022062322/5697c0151a28abf838ccddee/html5/thumbnails/46.jpg)
![Page 47: Johan Janssen, Info Support, @johanjanssen42. Why Docker Different options Things to consider Questions](https://reader036.vdocuments.net/reader036/viewer/2022062322/5697c0151a28abf838ccddee/html5/thumbnails/47.jpg)
![Page 48: Johan Janssen, Info Support, @johanjanssen42. Why Docker Different options Things to consider Questions](https://reader036.vdocuments.net/reader036/viewer/2022062322/5697c0151a28abf838ccddee/html5/thumbnails/48.jpg)
![Page 49: Johan Janssen, Info Support, @johanjanssen42. Why Docker Different options Things to consider Questions](https://reader036.vdocuments.net/reader036/viewer/2022062322/5697c0151a28abf838ccddee/html5/thumbnails/49.jpg)
![Page 50: Johan Janssen, Info Support, @johanjanssen42. Why Docker Different options Things to consider Questions](https://reader036.vdocuments.net/reader036/viewer/2022062322/5697c0151a28abf838ccddee/html5/thumbnails/50.jpg)
![Page 51: Johan Janssen, Info Support, @johanjanssen42. Why Docker Different options Things to consider Questions](https://reader036.vdocuments.net/reader036/viewer/2022062322/5697c0151a28abf838ccddee/html5/thumbnails/51.jpg)
![Page 52: Johan Janssen, Info Support, @johanjanssen42. Why Docker Different options Things to consider Questions](https://reader036.vdocuments.net/reader036/viewer/2022062322/5697c0151a28abf838ccddee/html5/thumbnails/52.jpg)
![Page 53: Johan Janssen, Info Support, @johanjanssen42. Why Docker Different options Things to consider Questions](https://reader036.vdocuments.net/reader036/viewer/2022062322/5697c0151a28abf838ccddee/html5/thumbnails/53.jpg)
Summary
Easy to use
Highly flexible and customizable
Start playing with Docker!