Push local docker images to your remote servers via ssh without the hassle.
Project description
docker-push-ssh
Push docker images from your local machine to remote servers without the hassle.
Overview
docker-push-ssh
is a command line utility to push docker images from your local machine to your remote machine via ssh.
It creates a private docker registry on your server, establishes a ssh tunnel (so the registry is never exposed to the public), and uploads your docker image over this ssh tunnel.
Tested on OS X with "Docker for Mac".
Install
-
Install via pip:
pip install docker-push-ssh
-
Add
localhost:5000
to your docker client's insecure registries (requires restart of docker):
[OS X] How to Add Insecure Registry
[Linux] How to Add Insecure Registry
Adding localhost:5000
to your client's insecure registries is inconvenient but a side-effect of docker's design.
It only needs to be done once from each machine using docker-push-ssh
. This allows the tool to push through the ssh
tunnel at localhost:5000
to the temporary registry on your remote host, without needing ssl certificates for your server.
Usage:
$ docker-push-ssh --help
usage: docker-push-ssh [-h] [-i SSH_IDENTITY_FILE] [-p SSH_PORT]
ssh_host docker_image [docker_image ...]
A utility to securely push a docker image from your local host to a remote
host over ssh without using docker save/load or needing to setup a private
registry.
positional arguments:
ssh_host Host to push docker image to. (ex.
username@myhost.com)
docker_image Docker image tag(s) to push. Specify one or more
separated by spaces.
optional arguments:
-h, --help show this help message and exit
-i SSH_IDENTITY_FILE, --ssh-identity-file SSH_IDENTITY_FILE
[required] Path to the ssh identity file on your local
host. Required, password auth not supported.
-p SSH_PORT, --ssh-port SSH_PORT
[optional] Port on ssh host to connect to. (Default is
22)
Examples
First create a test image we can use:
$ mkdir /tmp/testimage && cd /tmp/testimage
$ echo "FROM alpine" >> ./Dockerfile
$ echo "RUN touch /etc/testimage" >> ./Dockerfile
$ docker build -t testimage .
Now push that test image to our remote server:
$ docker-push-ssh -i ~/my_identity_file root@myserver.com testimage
...
Now the testimage
will be present on your server.
Caveats
- SSH password authentication is not supported. Only key files.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file docker-push-ssh-0.1.5.tar.gz
.
File metadata
- Download URL: docker-push-ssh-0.1.5.tar.gz
- Upload date:
- Size: 5.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/1.11.0 pkginfo/1.4.2 requests/2.19.1 setuptools/40.2.0 requests-toolbelt/0.8.0 tqdm/4.26.0 CPython/2.7.14
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 47363fe46dd85cfee23dc5406a381172122a63aac074bb5d746efcec92caf313 |
|
MD5 | 31f95d5a718f93544c80b433df543e78 |
|
BLAKE2b-256 | 7ad64069fa8040bdc4353b26994612b3dfdca0525d170fd7621faa4747c4b603 |
File details
Details for the file docker_push_ssh-0.1.5-py2-none-any.whl
.
File metadata
- Download URL: docker_push_ssh-0.1.5-py2-none-any.whl
- Upload date:
- Size: 9.5 kB
- Tags: Python 2
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/1.11.0 pkginfo/1.4.2 requests/2.19.1 setuptools/40.2.0 requests-toolbelt/0.8.0 tqdm/4.26.0 CPython/2.7.14
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 343291ebea7830eb5b6acdba60ea86e651f33fde8b269d78204b2f2853ffe79e |
|
MD5 | 91453869025ac176937e9cfa1a8e25ec |
|
BLAKE2b-256 | a85e8e2b8b5ce42fd078ceff84c92fa9f229a4dad1dd205a49c5fedb62b9879f |