EclipseCon Europe 2016 - Docker Tooling for Developers

24
Xavier Coulon @xcoulon October 25, 2016 EclipseCon Europe 2016 Docker Tooling for Developers

Transcript of EclipseCon Europe 2016 - Docker Tooling for Developers

Page 1: EclipseCon Europe 2016 - Docker Tooling for Developers

Xavier Coulon@xcoulon October 25, 2016

EclipseCon Europe 2016 Docker Tooling for Developers

Page 2: EclipseCon Europe 2016 - Docker Tooling for Developers

EclipseCon Europe 2016- Docker Tooling for Developers - @xcoulon

About me

• Senior Software Engineer

• Working at Red Hat for ~5 years

• JBoss Tools team member

• Committer on Docker Tooling at eclipse.org

Page 3: EclipseCon Europe 2016 - Docker Tooling for Developers

EclipseCon Europe 2016- Docker Tooling for Developers - @xcoulon3

Agenda

• Quick introduction to Docker

• Docker tooling at Eclipse

• Demo

• Conclusion

Page 4: EclipseCon Europe 2016 - Docker Tooling for Developers

EclipseCon Europe 2016- Docker Tooling for Developers - @xcoulon4

Introduction to Docker

Page 5: EclipseCon Europe 2016 - Docker Tooling for Developers

EclipseCon Europe 2016- Docker Tooling for Developers - @xcoulon5

Docker components

• Images

• Containers

• Daemons

• Clients

• Registries

Page 6: EclipseCon Europe 2016 - Docker Tooling for Developers

EclipseCon Europe 2016- Docker Tooling for Developers - @xcoulon6

Docker Images

• "build" components

• read-only templates

• combination of layers

• built using a Dockerfile

Page 7: EclipseCon Europe 2016 - Docker Tooling for Developers

EclipseCon Europe 2016- Docker Tooling for Developers - @xcoulon7

Docker Containers• "run" components

• based on Images

• contain application and dependencies but share same kernel

• can be started, stopped, paused, deleted

• can be linked to other containers

• containers are immutable and disposable

Page 8: EclipseCon Europe 2016 - Docker Tooling for Developers

EclipseCon Europe 2016- Docker Tooling for Developers - @xcoulon8

Docker Daemon

• runs natively on Linux

• inside a VM on Windows and Mac OS X

Page 9: EclipseCon Europe 2016 - Docker Tooling for Developers

EclipseCon Europe 2016- Docker Tooling for Developers - @xcoulon9

Docker Clients

clients (CLI, IDE) run on host VM

Page 10: EclipseCon Europe 2016 - Docker Tooling for Developers

EclipseCon Europe 2016- Docker Tooling for Developers - @xcoulon10

Docker Registries

• "distribution" components

• public instances (https://hub.docker.com)

• private instances

Page 11: EclipseCon Europe 2016 - Docker Tooling for Developers

EclipseCon Europe 2016- Docker Tooling for Developers - @xcoulon11

Benefits of Docker• Lightweight

• Fast

• Portable across environments

• Whole stack in a container

• Sandboxing

• No installation. Just run.

Page 12: EclipseCon Europe 2016 - Docker Tooling for Developers

EclipseCon Europe 2016- Docker Tooling for Developers - @xcoulon12

Docker at eclipse.org• Linux tools project (works on Mac OS X and Windows,

too)

• Make Docker accessible from Eclipse

• Works with existing Docker tools (docker-machine, etc.)

• Focus on developer experience

• Allow reuse by other plugins

Page 13: EclipseCon Europe 2016 - Docker Tooling for Developers

EclipseCon Europe 2016- Docker Tooling for Developers - @xcoulon13

Docker setup

• Install Docker for Windows/Mac/Linux or Docker Toolbox from docker.com or the Red Hat Container Development Kit (CDK) at http://developers.redhat.com/products/cdk

• Install Eclipse Docker tooling

• from Eclipse Marketplace

• from eclipse.org/linuxtools

• as part of Red Hat Developer Studio (http://developers.redhat.com/products/devstudio)

• from tools.jboss.org (mirrors eclipse.org/linuxtools)

Page 14: EclipseCon Europe 2016 - Docker Tooling for Developers

EclipseCon Europe 2016- Docker Tooling for Developers - @xcoulon14

Eclipse Mars Release• Docker Explorer view (tree) + Docker Images and Containers

views (list)

• Search, pull and push images on Docker Hub

• Run images (wizard and launcher)

• Build images (wizard and launcher)

• Manage containers (start/stop/pause/unpause/kill/remove/tag)

• Display container logs

Page 15: EclipseCon Europe 2016 - Docker Tooling for Developers

EclipseCon Europe 2016- Docker Tooling for Developers - @xcoulon15

Eclipse Neon Releases• Dockerfile editor (external contribution)

• Support for Docker Compose

• Image Hierarchy view

• Execute shell commands in Terminal view

• Improved support for connections

• Push to registries with authentication

• Bug fixes (thanks to AERI reports)

Page 16: EclipseCon Europe 2016 - Docker Tooling for Developers

EclipseCon Europe 2016- Docker Tooling for Developers - @xcoulon16

Demo

Page 17: EclipseCon Europe 2016 - Docker Tooling for Developers

EclipseCon Europe 2016- Docker Tooling for Developers - @xcoulon17

Docker VM

Docker

Demo scenario

xcoulon/wildfly-postgres-dev:10.0.0.Final

jboss/wildfly:10.0.0.Final

Dockerfile

Page 18: EclipseCon Europe 2016 - Docker Tooling for Developers

EclipseCon Europe 2016- Docker Tooling for Developers - @xcoulon18

Docker VM

Docker

Demo scenario

wildfly postgres

xcoulon/wildfly-postgres-dev:10.0.0.Final

.../deploymentsHost

postgres:9.4.8

Page 19: EclipseCon Europe 2016 - Docker Tooling for Developers

EclipseCon Europe 2016- Docker Tooling for Developers - @xcoulon19

Conclusion

Page 20: EclipseCon Europe 2016 - Docker Tooling for Developers

EclipseCon Europe 2016- Docker Tooling for Developers - @xcoulon20

Summary of highlighted Docker features

• Manage connection to Docker daemons

• Search and pull images

• Build custom images from Dockerfile

• Run images with specific ports, volumes and links to containers

• Manage containers (start/stop/pause/unpause/kill)

• Use a server adapter

• Remote debug in a container

• View image hierarchy

• Run Docker Compose

• Copy files from containers to host

Page 21: EclipseCon Europe 2016 - Docker Tooling for Developers

EclipseCon Europe 2016- Docker Tooling for Developers - @xcoulon21

Ideas for Eclipse Oxygen

• Improve support for Docker Compose

• Support newest Docker core features

• Import/export "docker run" commands

• Server Adapter (JBoss Tools)

Page 22: EclipseCon Europe 2016 - Docker Tooling for Developers

EclipseCon Europe 2016- Docker Tooling for Developers - @xcoulon22

Let's Get in Touch !

• eclipse.org/linuxtools / [email protected] / bugs.eclipse.org (product 'Linux Tools' / Component 'Docker')

• http://tools.jboss.org / [email protected] / @jbosstools

• http://developers.redhat.com/ @rhdevelopers

Page 23: EclipseCon Europe 2016 - Docker Tooling for Developers

EclipseCon Europe 2016- Docker Tooling for Developers - @xcoulon23

Questions &

Answers

Page 24: EclipseCon Europe 2016 - Docker Tooling for Developers

Danke !

Feedback appreciated: @xcoulon or

eclipsecon.org (sign in and vote)