通过ssh将本地docker映像推送到远程服务器上,不会有麻烦。

docker-push-ssh的Python项目详细描述


Docker推ssh

PyPI versionBuild Status

将Docker映像从本地计算机推送到远程服务器,无需麻烦。

概述

docker-push-ssh是一个命令行实用程序,用于通过ssh将Docker映像从本地计算机推送到远程计算机。

它在你的服务器上创建一个私有的Docker注册表,建立一个ssh隧道(这样注册表就不会暴露给公众)。 并通过这个ssh隧道上传你的docker镜像。

使用“Docker for Mac”在OS X上测试。

安装

  1. 通过PIP安装: pip install docker-push-ssh

  2. localhost:5000添加到Docker客户端的不安全注册表(需要重新启动Docker):

[OS X] How to Add Insecure Registry

[Linux] How to Add Insecure Registry

localhost:5000添加到客户端不安全的注册表中是不方便的,但这是Docker设计的一个副作用。 使用docker-push-ssh,每台机器只需执行一次。这允许工具通过ssh 在localhost:5000处隧道到远程主机上的临时注册表,而不需要服务器的ssl证书。

用法:

$ 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)

示例

首先创建一个我们可以使用的测试图像:

$ mkdir /tmp/testimage &&cd /tmp/testimage
$ echo"FROM alpine" >> ./Dockerfile
$ echo"RUN touch /etc/testimage" >> ./Dockerfile
$ docker build -t testimage .

现在将测试图像推送到远程服务器:

$ docker-push-ssh -i ~/my_identity_file root@myserver.com testimage
...

现在testimage将出现在您的服务器上。

注意事项

  1. 不支持ssh密码身份验证。只有密钥文件。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
如何在java中调用Paint组件方法   多层次POM中的java覆盖依赖项/插件管理   java模式识别   JavaSpringMVC+Log4j2定义了Log4j2。未标识非类路径位置中的属性文件   java我们如何将IntelliJ IDEA中的maven和gradle项目与源代码浏览支持集成?   Maven mvn exec:java在Windows上工作,但不是Ubuntu 20   java在Jaxb2Marshaller上使用带有packagesToScan属性的JAXBElement时没有端点适配器   java删除方法和节点   java如何为某些场景创建正则表达式模式   java如何通过gridView中的intent()传递ArrayList数据。setOnItemClickListener()   java UnsupportedClassVersionError 1.7/1.5   java为什么JVM参数是http。tomcat servlet没有使用proxyHost?   java将ArrayList从字母顺序排序到最频繁/最不频繁   java动态字段列表迭代   java如何将字节转换为位?   hadoop java。mapreduce作业中的lang.NullPointerException   javasocketIO无法与Android中的LocationListener一起使用   java在卸载时清除内部存储   java池回收错误2个精灵同时碰撞到一个精灵