') + ')', 'gi'); if (regex.test(text)) { found = true; var frag = document.createDocumentFragment(); var parts = text.split(regex); parts.forEach(function(part, i) { if (i % 2 === 0) { frag.appendChild(document.createTextNode(part)); } else { var span = document.createElement('span'); span.className = 'userscript-highlight'; span.textContent = part; frag.appendChild(span); } }); node.parentNode.replaceChild(frag, node); } }); } else if (node.nodeType === 1 && node.childNodes) { // element var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT']; if (!skipTags.includes(node.tagName)) { Array.from(node.childNodes).forEach(highlight); } } } highlight(document.body); // Re-highlight on dynamic content var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1 || node.nodeType === 3) highlight(node); }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ', 'i'); if (__m === '*' || __re.test(location.href)) { // Strip utm_, fbclid, gclid, etc. from all links on page (function() { var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content', 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid', 'ref', 'ref_src', 'source', 'medium', 'campaign']; function cleanUrl(url) { try { var u = new URL(url, window.location.origin); var changed = false; trackingParams.forEach(function(p) { if (u.searchParams.has(p)) { u.searchParams.delete(p); changed = true; } }); return changed ? u.toString() : url; } catch (e) { return url; } } function cleanLinks() { document.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } cleanLinks(); var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1) { if (node.tagName === 'A') cleanLinks(); node.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + ', 'i'); if (__m === '*' || __re.test(location.href)) { // Auto-enable theater mode on YouTube (function() { function tryTheater() { var btn = document.querySelector('button[aria-label="Theater mode"], ytd-player #player button[title="Theater mode"]'); if (btn && !btn.classList.contains('activated')) { btn.click(); } } // Try immediately tryTheater(); // Try after navigation (SPA) var lastUrl = location.href; setInterval(function() { if (location.href !== lastUrl) { lastUrl = location.href; setTimeout(tryTheater, 500); } }, 1000); // Also try on player load var observer = new MutationObserver(tryTheater); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ', 'i'); if (__m === '*' || __re.test(location.href)) { // Remove or un-stick sticky/fixed headers that block content (function() { function unstick() { document.querySelectorAll('header, nav, [role="banner"], .header, .navbar, .sticky, .fixed-top, [style*="position: fixed"], [style*="position:sticky"]').forEach(function(el) { if (el.style.position === 'fixed' || el.style.position === 'sticky' || getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') { el.style.position = 'static'; el.style.top = 'auto'; el.style.zIndex = 'auto'; } }); } unstick(); var observer = new MutationObserver(unstick); observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] }); })(); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); })(); Prettify readme by issmirnov · Pull Request #4 · docbill/docker-scripts · GitHub
Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
45 changes: 24 additions & 21 deletions README.md
Original file line numberDiff line numberDiff line change
@@ -1,37 +1,40 @@
# Docker Scripts

These are scripts that make common docker activities easier.

The contents currently include:

docker-enter : This is my own variation of a script to use nsenter to run
`docker-enter` : This is my own variation of a script to use nsenter to run
an additional command within a container. This is superceeded by
"docker exec"

docker-rebase : This a script that performs a function simmilar to docker
`docker-rebase` : This a script that performs a function simmilar to docker
commit. But rather than adding to an existing image's history, it creates
a new image via "docker export" and "docker import" and then creates a
dockerfile within a pipe to set all the same settings.

bridge-default-route : Create a bridge for the default route. This is useful
`bridge-default-route` : Create a bridge for the default route. This is useful
in combinations with the next script as a way to make docker containers
accessible from other hosts

docker-bridge : Connect a docker container to a bridge.

EXAMPLE: Creating a bridge accessible on the local network.

First create a bridge, br0, for your default route:

# bridge-default-route br0

Now go-ahead and create your containers with no network:

# CONTAINER=$(docker run -d --net=none -t -i fedora /bin/bash -i)

Finally connect your container to your bridge with a static ip address.

# docker-bridge "$CONTAINER" address 192.168.1.68/24 bridge br0 broadcast 192.168.1.255 gateway 192.168.1.1

In this example, my router is 192.168.1.1. The static IP address I assigned
to the container is 192.168.1.68.
`docker-bridge` : Connect a docker container to a bridge.

## EXAMPLE: Creating a bridge accessible on the local network.

First create a bridge, br0, for your default route:
```
# bridge-default-route br0
```

Now go-ahead and create your containers with no network:
```
# CONTAINER=$(docker run -d --net=none -t -i fedora /bin/bash -i)
```
Finally connect your container to your bridge with a static ip address.
```
# docker-bridge "$CONTAINER" address 192.168.1.68/24 bridge br0 broadcast 192.168.1.255 gateway 192.168.1.1
```
In this example, my router is 192.168.1.1. The static IP address I assigned
to the container is 192.168.1.68.