Repository files navigation

Docker Client Build Statuscodecov.io

This is a simple Docker client written in Java. We build and test docker-client on Docker versions 1.6 - 1.10 (specifically the ones here). See Docker docs on the mapping between Docker version and API version.

Usage Example

// Create a client based on DOCKER_HOST and DOCKER_CERT_PATH env varsfinalDockerClientdocker = DefaultDockerClient.fromEnv().build();
// Pull an imagedocker.pull("busybox");
// Pull an image from a private repository// Server address defaults to "https://index.docker.io/v1/"AuthConfigauthConfig = AuthConfig.builder().email("foo@bar.com").username("foobar")
.password("secret-password").serverAddress("https://myprivateregistry.com/v1/").build();
docker.pull("foobar/busybox-private:latest", authConfig);
// You can also set the AuthConfig for the DockerClient instead of passing everytime you call pull()DockerClientdocker = DefaultDockerClient.fromEnv().authConfig(authConfig).build();
// Bind container ports to host portsfinalString[] ports = {"80", "22"};
finalMap<String, List<PortBinding>> portBindings = newHashMap<String, List<PortBinding>>();
for (Stringport : ports) {
List<PortBinding> hostPorts = newArrayList<PortBinding>();
hostPorts.add(PortBinding.of("0.0.0.0", port));
portBindings.put(port, hostPorts);
}
// Bind container port 443 to an automatically allocated available host port.List<PortBinding> randomPort = newArrayList<PortBinding>();
randomPort.add(PortBinding.randomPort("0.0.0.0"));
portBindings.put("443", randomPort);
finalHostConfighostConfig = HostConfig.builder().portBindings(portBindings).build();
// Create container with exposed portsfinalContainerConfigcontainerConfig = ContainerConfig.builder()
.hostConfig(hostConfig)
.image("busybox").exposedPorts(ports)
.cmd("sh", "-c", "while :; do sleep 1; done")
.build();
finalContainerCreationcreation = docker.createContainer(containerConfig);
finalStringid = creation.id();
// Inspect containerfinalContainerInfoinfo = docker.inspectContainer(id);
// Start containerdocker.startContainer(id);
// Exec command inside running container with attached STDOUT and STDERRfinalString[] command = {"bash", "-c", "ls"};
finalStringexecId = docker.execCreate(
id, command, DockerClient.ExecCreateParam.attachStdout(),
DockerClient.ExecCreateParam.attachStderr());
finalLogStreamoutput = docker.execStart(execId);
finalStringexecOutput = output.readFully();
// Kill containerdocker.killContainer(id);
// Remove containerdocker.removeContainer(id);
// Close the docker clientdocker.close();

Getting Started

If you're looking for how to use docker-client, see the User Manual. If you're looking for how to build and develop it, keep reading.

Prerequisites

docker-client should be buildable on any platform with Docker, JDK7+, and a recent version of Maven 3.

A note on using Docker for Mac

If you are using Docker for Mac and DefaultDockerClient.fromEnv(), it might not be clear what value to use for the DOCKER_HOST environment variable. The value you should use is DOCKER_HOST=unix:///var/run/docker.sock, at least as of version 1.11.1-beta11.

As of version 4.0.8 of docker-client, DefaultDockerClient.fromEnv() uses unix:///var/run/docker.sock on OS X by default.

Testing

Make sure Docker daemon is running and that you can do docker ps.

You can run tests on their own with mvn test. Note that the tests start and stop a large number of containers, so the list of containers you see with docker ps -a will start to get pretty long after many test runs. You may find it helpful to occassionally issue docker rm $(docker ps -aq).

Releasing

Commits to the master branch will trigger our continuous integration agent to build the jar and release by uploading to Sonatype. If you are a project maintainer with the necessary credentials, you can also build and release locally by running the below.

mvn release:clean
mvn release:prepare
mvn release:perform

A note on shading

Please note that in releases 2.7.6 and earlier, the default artifact was the shaded version. When upgrading to version 2.7.7, you will need to include the shaded classifier if you relied on the shaded dependencies in the docker-client jar.

Standard:

<dependency>
<groupId>com.spotify</groupId>
<artifactId>docker-client</artifactId>
<version>3.5.12</version>
</dependency>

Shaded:

<dependency>
<groupId>com.spotify</groupId>
<artifactId>docker-client</artifactId>
<classifier>shaded</classifier>
<version>3.5.12</version>
</dependency>

This is particularly important if you use Jersey 1.x in your project. To avoid conflicts with docker-client and Jersey 2.x, you will need to explicitly specify the shaded version above.

About

A simple docker client for the JVM

Resources

Contributing

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

Repository files navigation

Docker Client Build Statuscodecov.io

This is a simple Docker client written in Java. We build and test docker-client on Docker versions 1.6 - 1.10 (specifically the ones here). See Docker docs on the mapping between Docker version and API version.

Usage Example

// Create a client based on DOCKER_HOST and DOCKER_CERT_PATH env varsfinalDockerClientdocker = DefaultDockerClient.fromEnv().build();
// Pull an imagedocker.pull("busybox");
// Pull an image from a private repository// Server address defaults to "https://index.docker.io/v1/"AuthConfigauthConfig = AuthConfig.builder().email("foo@bar.com").username("foobar")
.password("secret-password").serverAddress("https://myprivateregistry.com/v1/").build();
docker.pull("foobar/busybox-private:latest", authConfig);
// You can also set the AuthConfig for the DockerClient instead of passing everytime you call pull()DockerClientdocker = DefaultDockerClient.fromEnv().authConfig(authConfig).build();
// Bind container ports to host portsfinalString[] ports = {"80", "22"};
finalMap<String, List<PortBinding>> portBindings = newHashMap<String, List<PortBinding>>();
for (Stringport : ports) {
List<PortBinding> hostPorts = newArrayList<PortBinding>();
hostPorts.add(PortBinding.of("0.0.0.0", port));
portBindings.put(port, hostPorts);
}
// Bind container port 443 to an automatically allocated available host port.List<PortBinding> randomPort = newArrayList<PortBinding>();
randomPort.add(PortBinding.randomPort("0.0.0.0"));
portBindings.put("443", randomPort);
finalHostConfighostConfig = HostConfig.builder().portBindings(portBindings).build();
// Create container with exposed portsfinalContainerConfigcontainerConfig = ContainerConfig.builder()
.hostConfig(hostConfig)
.image("busybox").exposedPorts(ports)
.cmd("sh", "-c", "while :; do sleep 1; done")
.build();
finalContainerCreationcreation = docker.createContainer(containerConfig);
finalStringid = creation.id();
// Inspect containerfinalContainerInfoinfo = docker.inspectContainer(id);
// Start containerdocker.startContainer(id);
// Exec command inside running container with attached STDOUT and STDERRfinalString[] command = {"bash", "-c", "ls"};
finalStringexecId = docker.execCreate(
id, command, DockerClient.ExecCreateParam.attachStdout(),
DockerClient.ExecCreateParam.attachStderr());
finalLogStreamoutput = docker.execStart(execId);
finalStringexecOutput = output.readFully();
// Kill containerdocker.killContainer(id);
// Remove containerdocker.removeContainer(id);
// Close the docker clientdocker.close();

Getting Started

If you're looking for how to use docker-client, see the User Manual. If you're looking for how to build and develop it, keep reading.

Prerequisites

docker-client should be buildable on any platform with Docker, JDK7+, and a recent version of Maven 3.

A note on using Docker for Mac

If you are using Docker for Mac and DefaultDockerClient.fromEnv(), it might not be clear what value to use for the DOCKER_HOST environment variable. The value you should use is DOCKER_HOST=unix:///var/run/docker.sock, at least as of version 1.11.1-beta11.

As of version 4.0.8 of docker-client, DefaultDockerClient.fromEnv() uses unix:///var/run/docker.sock on OS X by default.

Testing

Make sure Docker daemon is running and that you can do docker ps.

You can run tests on their own with mvn test. Note that the tests start and stop a large number of containers, so the list of containers you see with docker ps -a will start to get pretty long after many test runs. You may find it helpful to occassionally issue docker rm $(docker ps -aq).

Releasing

Commits to the master branch will trigger our continuous integration agent to build the jar and release by uploading to Sonatype. If you are a project maintainer with the necessary credentials, you can also build and release locally by running the below.

mvn release:clean
mvn release:prepare
mvn release:perform

A note on shading

Please note that in releases 2.7.6 and earlier, the default artifact was the shaded version. When upgrading to version 2.7.7, you will need to include the shaded classifier if you relied on the shaded dependencies in the docker-client jar.

Standard:

<dependency>
<groupId>com.spotify</groupId>
<artifactId>docker-client</artifactId>
<version>3.5.12</version>
</dependency>

Shaded:

<dependency>
<groupId>com.spotify</groupId>
<artifactId>docker-client</artifactId>
<classifier>shaded</classifier>
<version>3.5.12</version>
</dependency>

This is particularly important if you use Jersey 1.x in your project. To avoid conflicts with docker-client and Jersey 2.x, you will need to explicitly specify the shaded version above.

About

A simple docker client for the JVM

Resources

Contributing

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

Docker Client Build Statuscodecov.io

This is a simple Docker client written in Java. We build and test docker-client on Docker versions 1.6 - 1.10 (specifically the ones here). See Docker docs on the mapping between Docker version and API version.

Usage Example

// Create a client based on DOCKER_HOST and DOCKER_CERT_PATH env varsfinalDockerClientdocker = DefaultDockerClient.fromEnv().build();
// Pull an imagedocker.pull("busybox");
// Pull an image from a private repository// Server address defaults to "https://index.docker.io/v1/"AuthConfigauthConfig = AuthConfig.builder().email("foo@bar.com").username("foobar")
.password("secret-password").serverAddress("https://myprivateregistry.com/v1/").build();
docker.pull("foobar/busybox-private:latest", authConfig);
// You can also set the AuthConfig for the DockerClient instead of passing everytime you call pull()DockerClientdocker = DefaultDockerClient.fromEnv().authConfig(authConfig).build();
// Bind container ports to host portsfinalString[] ports = {"80", "22"};
finalMap<String, List<PortBinding>> portBindings = newHashMap<String, List<PortBinding>>();
for (Stringport : ports) {
List<PortBinding> hostPorts = newArrayList<PortBinding>();
hostPorts.add(PortBinding.of("0.0.0.0", port));
portBindings.put(port, hostPorts);
}
// Bind container port 443 to an automatically allocated available host port.List<PortBinding> randomPort = newArrayList<PortBinding>();
randomPort.add(PortBinding.randomPort("0.0.0.0"));
portBindings.put("443", randomPort);
finalHostConfighostConfig = HostConfig.builder().portBindings(portBindings).build();
// Create container with exposed portsfinalContainerConfigcontainerConfig = ContainerConfig.builder()
.hostConfig(hostConfig)
.image("busybox").exposedPorts(ports)
.cmd("sh", "-c", "while :; do sleep 1; done")
.build();
finalContainerCreationcreation = docker.createContainer(containerConfig);
finalStringid = creation.id();
// Inspect containerfinalContainerInfoinfo = docker.inspectContainer(id);
// Start containerdocker.startContainer(id);
// Exec command inside running container with attached STDOUT and STDERRfinalString[] command = {"bash", "-c", "ls"};
finalStringexecId = docker.execCreate(
id, command, DockerClient.ExecCreateParam.attachStdout(),
DockerClient.ExecCreateParam.attachStderr());
finalLogStreamoutput = docker.execStart(execId);
finalStringexecOutput = output.readFully();
// Kill containerdocker.killContainer(id);
// Remove containerdocker.removeContainer(id);
// Close the docker clientdocker.close();

Getting Started

If you're looking for how to use docker-client, see the User Manual. If you're looking for how to build and develop it, keep reading.

Prerequisites

docker-client should be buildable on any platform with Docker, JDK7+, and a recent version of Maven 3.

A note on using Docker for Mac

If you are using Docker for Mac and DefaultDockerClient.fromEnv(), it might not be clear what value to use for the DOCKER_HOST environment variable. The value you should use is DOCKER_HOST=unix:///var/run/docker.sock, at least as of version 1.11.1-beta11.

As of version 4.0.8 of docker-client, DefaultDockerClient.fromEnv() uses unix:///var/run/docker.sock on OS X by default.

Testing

Make sure Docker daemon is running and that you can do docker ps.

You can run tests on their own with mvn test. Note that the tests start and stop a large number of containers, so the list of containers you see with docker ps -a will start to get pretty long after many test runs. You may find it helpful to occassionally issue docker rm $(docker ps -aq).

Releasing

Commits to the master branch will trigger our continuous integration agent to build the jar and release by uploading to Sonatype. If you are a project maintainer with the necessary credentials, you can also build and release locally by running the below.

mvn release:clean
mvn release:prepare
mvn release:perform

A note on shading

Please note that in releases 2.7.6 and earlier, the default artifact was the shaded version. When upgrading to version 2.7.7, you will need to include the shaded classifier if you relied on the shaded dependencies in the docker-client jar.

Standard:

<dependency>
<groupId>com.spotify</groupId>
<artifactId>docker-client</artifactId>
<version>3.5.12</version>
</dependency>

Shaded:

<dependency>
<groupId>com.spotify</groupId>
<artifactId>docker-client</artifactId>
<classifier>shaded</classifier>
<version>3.5.12</version>
</dependency>

This is particularly important if you use Jersey 1.x in your project. To avoid conflicts with docker-client and Jersey 2.x, you will need to explicitly specify the shaded version above.

About

A simple docker client for the JVM

Resources

Contributing

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

Docker Client Build Statuscodecov.io

This is a simple Docker client written in Java. We build and test docker-client on Docker versions 1.6 - 1.10 (specifically the ones here). See Docker docs on the mapping between Docker version and API version.

Usage Example

// Create a client based on DOCKER_HOST and DOCKER_CERT_PATH env varsfinalDockerClientdocker = DefaultDockerClient.fromEnv().build();
// Pull an imagedocker.pull("busybox");
// Pull an image from a private repository// Server address defaults to "https://index.docker.io/v1/"AuthConfigauthConfig = AuthConfig.builder().email("foo@bar.com").username("foobar")
.password("secret-password").serverAddress("https://myprivateregistry.com/v1/").build();
docker.pull("foobar/busybox-private:latest", authConfig);
// You can also set the AuthConfig for the DockerClient instead of passing everytime you call pull()DockerClientdocker = DefaultDockerClient.fromEnv().authConfig(authConfig).build();
// Bind container ports to host portsfinalString[] ports = {"80", "22"};
finalMap<String, List<PortBinding>> portBindings = newHashMap<String, List<PortBinding>>();
for (Stringport : ports) {
List<PortBinding> hostPorts = newArrayList<PortBinding>();
hostPorts.add(PortBinding.of("0.0.0.0", port));
portBindings.put(port, hostPorts);
}
// Bind container port 443 to an automatically allocated available host port.List<PortBinding> randomPort = newArrayList<PortBinding>();
randomPort.add(PortBinding.randomPort("0.0.0.0"));
portBindings.put("443", randomPort);
finalHostConfighostConfig = HostConfig.builder().portBindings(portBindings).build();
// Create container with exposed portsfinalContainerConfigcontainerConfig = ContainerConfig.builder()
.hostConfig(hostConfig)
.image("busybox").exposedPorts(ports)
.cmd("sh", "-c", "while :; do sleep 1; done")
.build();
finalContainerCreationcreation = docker.createContainer(containerConfig);
finalStringid = creation.id();
// Inspect containerfinalContainerInfoinfo = docker.inspectContainer(id);
// Start containerdocker.startContainer(id);
// Exec command inside running container with attached STDOUT and STDERRfinalString[] command = {"bash", "-c", "ls"};
finalStringexecId = docker.execCreate(
id, command, DockerClient.ExecCreateParam.attachStdout(),
DockerClient.ExecCreateParam.attachStderr());
finalLogStreamoutput = docker.execStart(execId);
finalStringexecOutput = output.readFully();
// Kill containerdocker.killContainer(id);
// Remove containerdocker.removeContainer(id);
// Close the docker clientdocker.close();

Getting Started

If you're looking for how to use docker-client, see the User Manual. If you're looking for how to build and develop it, keep reading.

Prerequisites

docker-client should be buildable on any platform with Docker, JDK7+, and a recent version of Maven 3.

A note on using Docker for Mac

If you are using Docker for Mac and DefaultDockerClient.fromEnv(), it might not be clear what value to use for the DOCKER_HOST environment variable. The value you should use is DOCKER_HOST=unix:///var/run/docker.sock, at least as of version 1.11.1-beta11.

As of version 4.0.8 of docker-client, DefaultDockerClient.fromEnv() uses unix:///var/run/docker.sock on OS X by default.

Testing

Make sure Docker daemon is running and that you can do docker ps.

You can run tests on their own with mvn test. Note that the tests start and stop a large number of containers, so the list of containers you see with docker ps -a will start to get pretty long after many test runs. You may find it helpful to occassionally issue docker rm $(docker ps -aq).

Releasing

Commits to the master branch will trigger our continuous integration agent to build the jar and release by uploading to Sonatype. If you are a project maintainer with the necessary credentials, you can also build and release locally by running the below.

mvn release:clean
mvn release:prepare
mvn release:perform

A note on shading

Please note that in releases 2.7.6 and earlier, the default artifact was the shaded version. When upgrading to version 2.7.7, you will need to include the shaded classifier if you relied on the shaded dependencies in the docker-client jar.

Standard:

<dependency>
<groupId>com.spotify</groupId>
<artifactId>docker-client</artifactId>
<version>3.5.12</version>
</dependency>

Shaded:

<dependency>
<groupId>com.spotify</groupId>
<artifactId>docker-client</artifactId>
<classifier>shaded</classifier>
<version>3.5.12</version>
</dependency>

This is particularly important if you use Jersey 1.x in your project. To avoid conflicts with docker-client and Jersey 2.x, you will need to explicitly specify the shaded version above.

About

A simple docker client for the JVM

Resources

Contributing

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

Repository files navigation

Docker Client Build Statuscodecov.io

This is a simple Docker client written in Java. We build and test docker-client on Docker versions 1.6 - 1.10 (specifically the ones here). See Docker docs on the mapping between Docker version and API version.

Usage Example

// Create a client based on DOCKER_HOST and DOCKER_CERT_PATH env varsfinalDockerClientdocker = DefaultDockerClient.fromEnv().build();
// Pull an imagedocker.pull("busybox");
// Pull an image from a private repository// Server address defaults to "https://index.docker.io/v1/"AuthConfigauthConfig = AuthConfig.builder().email("foo@bar.com").username("foobar")
.password("secret-password").serverAddress("https://myprivateregistry.com/v1/").build();
docker.pull("foobar/busybox-private:latest", authConfig);
// You can also set the AuthConfig for the DockerClient instead of passing everytime you call pull()DockerClientdocker = DefaultDockerClient.fromEnv().authConfig(authConfig).build();
// Bind container ports to host portsfinalString[] ports = {"80", "22"};
finalMap<String, List<PortBinding>> portBindings = newHashMap<String, List<PortBinding>>();
for (Stringport : ports) {
List<PortBinding> hostPorts = newArrayList<PortBinding>();
hostPorts.add(PortBinding.of("0.0.0.0", port));
portBindings.put(port, hostPorts);
}
// Bind container port 443 to an automatically allocated available host port.List<PortBinding> randomPort = newArrayList<PortBinding>();
randomPort.add(PortBinding.randomPort("0.0.0.0"));
portBindings.put("443", randomPort);
finalHostConfighostConfig = HostConfig.builder().portBindings(portBindings).build();
// Create container with exposed portsfinalContainerConfigcontainerConfig = ContainerConfig.builder()
.hostConfig(hostConfig)
.image("busybox").exposedPorts(ports)
.cmd("sh", "-c", "while :; do sleep 1; done")
.build();
finalContainerCreationcreation = docker.createContainer(containerConfig);
finalStringid = creation.id();
// Inspect containerfinalContainerInfoinfo = docker.inspectContainer(id);
// Start containerdocker.startContainer(id);
// Exec command inside running container with attached STDOUT and STDERRfinalString[] command = {"bash", "-c", "ls"};
finalStringexecId = docker.execCreate(
id, command, DockerClient.ExecCreateParam.attachStdout(),
DockerClient.ExecCreateParam.attachStderr());
finalLogStreamoutput = docker.execStart(execId);
finalStringexecOutput = output.readFully();
// Kill containerdocker.killContainer(id);
// Remove containerdocker.removeContainer(id);
// Close the docker clientdocker.close();

Getting Started

If you're looking for how to use docker-client, see the User Manual. If you're looking for how to build and develop it, keep reading.

Prerequisites

docker-client should be buildable on any platform with Docker, JDK7+, and a recent version of Maven 3.

A note on using Docker for Mac

If you are using Docker for Mac and DefaultDockerClient.fromEnv(), it might not be clear what value to use for the DOCKER_HOST environment variable. The value you should use is DOCKER_HOST=unix:///var/run/docker.sock, at least as of version 1.11.1-beta11.

As of version 4.0.8 of docker-client, DefaultDockerClient.fromEnv() uses unix:///var/run/docker.sock on OS X by default.

Testing

Make sure Docker daemon is running and that you can do docker ps.

You can run tests on their own with mvn test. Note that the tests start and stop a large number of containers, so the list of containers you see with docker ps -a will start to get pretty long after many test runs. You may find it helpful to occassionally issue docker rm $(docker ps -aq).

Releasing

Commits to the master branch will trigger our continuous integration agent to build the jar and release by uploading to Sonatype. If you are a project maintainer with the necessary credentials, you can also build and release locally by running the below.

mvn release:clean
mvn release:prepare
mvn release:perform

A note on shading

Please note that in releases 2.7.6 and earlier, the default artifact was the shaded version. When upgrading to version 2.7.7, you will need to include the shaded classifier if you relied on the shaded dependencies in the docker-client jar.

Standard:

<dependency>
<groupId>com.spotify</groupId>
<artifactId>docker-client</artifactId>
<version>3.5.12</version>
</dependency>

Shaded:

<dependency>
<groupId>com.spotify</groupId>
<artifactId>docker-client</artifactId>
<classifier>shaded</classifier>
<version>3.5.12</version>
</dependency>

This is particularly important if you use Jersey 1.x in your project. To avoid conflicts with docker-client and Jersey 2.x, you will need to explicitly specify the shaded version above.

About

A simple docker client for the JVM

Resources

Contributing

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

Docker Client Build Statuscodecov.io

This is a simple Docker client written in Java. We build and test docker-client on Docker versions 1.6 - 1.10 (specifically the ones here). See Docker docs on the mapping between Docker version and API version.

Usage Example

// Create a client based on DOCKER_HOST and DOCKER_CERT_PATH env varsfinalDockerClientdocker = DefaultDockerClient.fromEnv().build();
// Pull an imagedocker.pull("busybox");
// Pull an image from a private repository// Server address defaults to "https://index.docker.io/v1/"AuthConfigauthConfig = AuthConfig.builder().email("foo@bar.com").username("foobar")
.password("secret-password").serverAddress("https://myprivateregistry.com/v1/").build();
docker.pull("foobar/busybox-private:latest", authConfig);
// You can also set the AuthConfig for the DockerClient instead of passing everytime you call pull()DockerClientdocker = DefaultDockerClient.fromEnv().authConfig(authConfig).build();
// Bind container ports to host portsfinalString[] ports = {"80", "22"};
finalMap<String, List<PortBinding>> portBindings = newHashMap<String, List<PortBinding>>();
for (Stringport : ports) {
List<PortBinding> hostPorts = newArrayList<PortBinding>();
hostPorts.add(PortBinding.of("0.0.0.0", port));
portBindings.put(port, hostPorts);
}
// Bind container port 443 to an automatically allocated available host port.List<PortBinding> randomPort = newArrayList<PortBinding>();
randomPort.add(PortBinding.randomPort("0.0.0.0"));
portBindings.put("443", randomPort);
finalHostConfighostConfig = HostConfig.builder().portBindings(portBindings).build();
// Create container with exposed portsfinalContainerConfigcontainerConfig = ContainerConfig.builder()
.hostConfig(hostConfig)
.image("busybox").exposedPorts(ports)
.cmd("sh", "-c", "while :; do sleep 1; done")
.build();
finalContainerCreationcreation = docker.createContainer(containerConfig);
finalStringid = creation.id();
// Inspect containerfinalContainerInfoinfo = docker.inspectContainer(id);
// Start containerdocker.startContainer(id);
// Exec command inside running container with attached STDOUT and STDERRfinalString[] command = {"bash", "-c", "ls"};
finalStringexecId = docker.execCreate(
id, command, DockerClient.ExecCreateParam.attachStdout(),
DockerClient.ExecCreateParam.attachStderr());
finalLogStreamoutput = docker.execStart(execId);
finalStringexecOutput = output.readFully();
// Kill containerdocker.killContainer(id);
// Remove containerdocker.removeContainer(id);
// Close the docker clientdocker.close();

Getting Started

If you're looking for how to use docker-client, see the User Manual. If you're looking for how to build and develop it, keep reading.

Prerequisites

docker-client should be buildable on any platform with Docker, JDK7+, and a recent version of Maven 3.

A note on using Docker for Mac

If you are using Docker for Mac and DefaultDockerClient.fromEnv(), it might not be clear what value to use for the DOCKER_HOST environment variable. The value you should use is DOCKER_HOST=unix:///var/run/docker.sock, at least as of version 1.11.1-beta11.

As of version 4.0.8 of docker-client, DefaultDockerClient.fromEnv() uses unix:///var/run/docker.sock on OS X by default.

Testing

Make sure Docker daemon is running and that you can do docker ps.

You can run tests on their own with mvn test. Note that the tests start and stop a large number of containers, so the list of containers you see with docker ps -a will start to get pretty long after many test runs. You may find it helpful to occassionally issue docker rm $(docker ps -aq).

Releasing

Commits to the master branch will trigger our continuous integration agent to build the jar and release by uploading to Sonatype. If you are a project maintainer with the necessary credentials, you can also build and release locally by running the below.

mvn release:clean
mvn release:prepare
mvn release:perform

A note on shading

Please note that in releases 2.7.6 and earlier, the default artifact was the shaded version. When upgrading to version 2.7.7, you will need to include the shaded classifier if you relied on the shaded dependencies in the docker-client jar.

Standard:

<dependency>
<groupId>com.spotify</groupId>
<artifactId>docker-client</artifactId>
<version>3.5.12</version>
</dependency>

Shaded:

<dependency>
<groupId>com.spotify</groupId>
<artifactId>docker-client</artifactId>
<classifier>shaded</classifier>
<version>3.5.12</version>
</dependency>

This is particularly important if you use Jersey 1.x in your project. To avoid conflicts with docker-client and Jersey 2.x, you will need to explicitly specify the shaded version above.

About

A simple docker client for the JVM

Resources

Contributing

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

Docker Client Build Statuscodecov.io

This is a simple Docker client written in Java. We build and test docker-client on Docker versions 1.6 - 1.10 (specifically the ones here). See Docker docs on the mapping between Docker version and API version.

Usage Example

// Create a client based on DOCKER_HOST and DOCKER_CERT_PATH env varsfinalDockerClientdocker = DefaultDockerClient.fromEnv().build();
// Pull an imagedocker.pull("busybox");
// Pull an image from a private repository// Server address defaults to "https://index.docker.io/v1/"AuthConfigauthConfig = AuthConfig.builder().email("foo@bar.com").username("foobar")
.password("secret-password").serverAddress("https://myprivateregistry.com/v1/").build();
docker.pull("foobar/busybox-private:latest", authConfig);
// You can also set the AuthConfig for the DockerClient instead of passing everytime you call pull()DockerClientdocker = DefaultDockerClient.fromEnv().authConfig(authConfig).build();
// Bind container ports to host portsfinalString[] ports = {"80", "22"};
finalMap<String, List<PortBinding>> portBindings = newHashMap<String, List<PortBinding>>();
for (Stringport : ports) {
List<PortBinding> hostPorts = newArrayList<PortBinding>();
hostPorts.add(PortBinding.of("0.0.0.0", port));
portBindings.put(port, hostPorts);
}
// Bind container port 443 to an automatically allocated available host port.List<PortBinding> randomPort = newArrayList<PortBinding>();
randomPort.add(PortBinding.randomPort("0.0.0.0"));
portBindings.put("443", randomPort);
finalHostConfighostConfig = HostConfig.builder().portBindings(portBindings).build();
// Create container with exposed portsfinalContainerConfigcontainerConfig = ContainerConfig.builder()
.hostConfig(hostConfig)
.image("busybox").exposedPorts(ports)
.cmd("sh", "-c", "while :; do sleep 1; done")
.build();
finalContainerCreationcreation = docker.createContainer(containerConfig);
finalStringid = creation.id();
// Inspect containerfinalContainerInfoinfo = docker.inspectContainer(id);
// Start containerdocker.startContainer(id);
// Exec command inside running container with attached STDOUT and STDERRfinalString[] command = {"bash", "-c", "ls"};
finalStringexecId = docker.execCreate(
id, command, DockerClient.ExecCreateParam.attachStdout(),
DockerClient.ExecCreateParam.attachStderr());
finalLogStreamoutput = docker.execStart(execId);
finalStringexecOutput = output.readFully();
// Kill containerdocker.killContainer(id);
// Remove containerdocker.removeContainer(id);
// Close the docker clientdocker.close();

Getting Started

If you're looking for how to use docker-client, see the User Manual. If you're looking for how to build and develop it, keep reading.

Prerequisites

docker-client should be buildable on any platform with Docker, JDK7+, and a recent version of Maven 3.

A note on using Docker for Mac

If you are using Docker for Mac and DefaultDockerClient.fromEnv(), it might not be clear what value to use for the DOCKER_HOST environment variable. The value you should use is DOCKER_HOST=unix:///var/run/docker.sock, at least as of version 1.11.1-beta11.

As of version 4.0.8 of docker-client, DefaultDockerClient.fromEnv() uses unix:///var/run/docker.sock on OS X by default.

Testing

Make sure Docker daemon is running and that you can do docker ps.

You can run tests on their own with mvn test. Note that the tests start and stop a large number of containers, so the list of containers you see with docker ps -a will start to get pretty long after many test runs. You may find it helpful to occassionally issue docker rm $(docker ps -aq).

Releasing

Commits to the master branch will trigger our continuous integration agent to build the jar and release by uploading to Sonatype. If you are a project maintainer with the necessary credentials, you can also build and release locally by running the below.

mvn release:clean
mvn release:prepare
mvn release:perform

A note on shading

Please note that in releases 2.7.6 and earlier, the default artifact was the shaded version. When upgrading to version 2.7.7, you will need to include the shaded classifier if you relied on the shaded dependencies in the docker-client jar.

Standard:

<dependency>
<groupId>com.spotify</groupId>
<artifactId>docker-client</artifactId>
<version>3.5.12</version>
</dependency>

Shaded:

<dependency>
<groupId>com.spotify</groupId>
<artifactId>docker-client</artifactId>
<classifier>shaded</classifier>
<version>3.5.12</version>
</dependency>

This is particularly important if you use Jersey 1.x in your project. To avoid conflicts with docker-client and Jersey 2.x, you will need to explicitly specify the shaded version above.

About

A simple docker client for the JVM

Resources

Contributing

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

Repository files navigation

Docker Client Build Statuscodecov.io

This is a simple Docker client written in Java. We build and test docker-client on Docker versions 1.6 - 1.10 (specifically the ones here). See Docker docs on the mapping between Docker version and API version.

Usage Example

// Create a client based on DOCKER_HOST and DOCKER_CERT_PATH env varsfinalDockerClientdocker = DefaultDockerClient.fromEnv().build();
// Pull an imagedocker.pull("busybox");
// Pull an image from a private repository// Server address defaults to "https://index.docker.io/v1/"AuthConfigauthConfig = AuthConfig.builder().email("foo@bar.com").username("foobar")
.password("secret-password").serverAddress("https://myprivateregistry.com/v1/").build();
docker.pull("foobar/busybox-private:latest", authConfig);
// You can also set the AuthConfig for the DockerClient instead of passing everytime you call pull()DockerClientdocker = DefaultDockerClient.fromEnv().authConfig(authConfig).build();
// Bind container ports to host portsfinalString[] ports = {"80", "22"};
finalMap<String, List<PortBinding>> portBindings = newHashMap<String, List<PortBinding>>();
for (Stringport : ports) {
List<PortBinding> hostPorts = newArrayList<PortBinding>();
hostPorts.add(PortBinding.of("0.0.0.0", port));
portBindings.put(port, hostPorts);
}
// Bind container port 443 to an automatically allocated available host port.List<PortBinding> randomPort = newArrayList<PortBinding>();
randomPort.add(PortBinding.randomPort("0.0.0.0"));
portBindings.put("443", randomPort);
finalHostConfighostConfig = HostConfig.builder().portBindings(portBindings).build();
// Create container with exposed portsfinalContainerConfigcontainerConfig = ContainerConfig.builder()
.hostConfig(hostConfig)
.image("busybox").exposedPorts(ports)
.cmd("sh", "-c", "while :; do sleep 1; done")
.build();
finalContainerCreationcreation = docker.createContainer(containerConfig);
finalStringid = creation.id();
// Inspect containerfinalContainerInfoinfo = docker.inspectContainer(id);
// Start containerdocker.startContainer(id);
// Exec command inside running container with attached STDOUT and STDERRfinalString[] command = {"bash", "-c", "ls"};
finalStringexecId = docker.execCreate(
id, command, DockerClient.ExecCreateParam.attachStdout(),
DockerClient.ExecCreateParam.attachStderr());
finalLogStreamoutput = docker.execStart(execId);
finalStringexecOutput = output.readFully();
// Kill containerdocker.killContainer(id);
// Remove containerdocker.removeContainer(id);
// Close the docker clientdocker.close();

Getting Started

If you're looking for how to use docker-client, see the User Manual. If you're looking for how to build and develop it, keep reading.

Prerequisites

docker-client should be buildable on any platform with Docker, JDK7+, and a recent version of Maven 3.

A note on using Docker for Mac

If you are using Docker for Mac and DefaultDockerClient.fromEnv(), it might not be clear what value to use for the DOCKER_HOST environment variable. The value you should use is DOCKER_HOST=unix:///var/run/docker.sock, at least as of version 1.11.1-beta11.

As of version 4.0.8 of docker-client, DefaultDockerClient.fromEnv() uses unix:///var/run/docker.sock on OS X by default.

Testing

Make sure Docker daemon is running and that you can do docker ps.

You can run tests on their own with mvn test. Note that the tests start and stop a large number of containers, so the list of containers you see with docker ps -a will start to get pretty long after many test runs. You may find it helpful to occassionally issue docker rm $(docker ps -aq).

Releasing

Commits to the master branch will trigger our continuous integration agent to build the jar and release by uploading to Sonatype. If you are a project maintainer with the necessary credentials, you can also build and release locally by running the below.

mvn release:clean
mvn release:prepare
mvn release:perform

A note on shading

Please note that in releases 2.7.6 and earlier, the default artifact was the shaded version. When upgrading to version 2.7.7, you will need to include the shaded classifier if you relied on the shaded dependencies in the docker-client jar.

Standard:

<dependency>
<groupId>com.spotify</groupId>
<artifactId>docker-client</artifactId>
<version>3.5.12</version>
</dependency>

Shaded:

<dependency>
<groupId>com.spotify</groupId>
<artifactId>docker-client</artifactId>
<classifier>shaded</classifier>
<version>3.5.12</version>
</dependency>

This is particularly important if you use Jersey 1.x in your project. To avoid conflicts with docker-client and Jersey 2.x, you will need to explicitly specify the shaded version above.

About

A simple docker client for the JVM

Resources

Contributing

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages