【问题标题】:Docker: Push data container onto Docker HubDocker:将数据容器推送到 Docker Hub
【发布时间】:2017-03-20 08:01:08
【问题描述】:

我对 Docker 的东西真的很陌生,甚至在 Docker Hub 上也是新人,所以请多多包涵……

我创建了一个数据容器来与我的 docker 映像一起使用(特别是一个数据容器,用于存储正在运行的 mssql-server-lnux 映像的数据)。我知道它在我的本地系统上的位置。

我在 Docker Hub 上有一个新创建的帐户,我认为我想将数据容器推送到集线器上。我说我认为是因为我不确定这样做是否正确:我希望能够使用来自不同机器的数据容器。

如果我到目前为止所说的方向是正确的,那么我如何将 docker 映像推送到 Hub,以及以后如何访问它?

【问题讨论】:

    标签: docker dockerhub data-containers


    【解决方案1】:

    不能推送容器,只能推送图片,区别很重要。

    图像类似于容器的,容器本质上是图像的实例

    因此,如果您想推送共享您的数据库,那么这不是一个好主意 - 您必须先docker commit,这会很快变得丑陋。

    但是如果你只是想在不同的机器上使用新的数据容器启动你的 mysql 的新实例(最初不会有数据),那么继续推送数据容器映像。

    希望这会有所帮助。

    【讨论】:

    • 我认为它确实有帮助,但您能否再澄清一点。如果容器的物理位置(我的 Mac 上的当前 /var/lib/docker/volumes/…/_data)被重新定位到云卷,我可以在其他机器上使用相同的 Source 创建一个新容器吗?我根本不会涉及 Docker Hub?
    • hmm,不要以为你可以在多个 docker daemon 之间共享 /var/lib/docker/... 下的数据,从数据容器共享实际数据的唯一方法是使用 -v 将其挂载到某个云卷
    【解决方案2】:

    好的,这里有几个步骤。请检查这是否有帮助。

    1. 首先标记您的图像。假设您的映像名称是“myapplication”,您的 docker hub 用户名是“dockerhubusername”。

      $ docker tag myapplication dockerhubusername/myapplication

    2. 使用登录到 docker hub。输入用户名,如“dockerhubusername”,然后输入 docker hub 帐户的密码。

      $ docker login

    3. 现在推送命令。

      $ docker push dockerhubusername/myapplication

    现在,登录到您的 docker hub 并检查那里是否有图像。请记住,图像被推送到注册表/存储库,如 dockerhub 而不是容器。

    【讨论】:

    • 这个push的是应用镜像,但是数据量怎么办?
    • 数据卷始终在主机上。如果需要,您可以备份文件。
    【解决方案3】:

    假设您已标记您的图像,

    使用 docker login 配置您的 docker hub 凭据并使用 docker push 将您的图像推送到 dockerhub。

    $ docker 登录

    $ docker push dockerhub_username/mssql-server-lnux

    如果您还没有标记图像,

    $ docker tag mssql-server-lnux dockerhub_username/mssql-server-lnux

    要稍后访问您的图片,

    $ docker pull dockerhub_username/mssql-server-lnux

    参考文献

    1. Docker Pull
    2. Docker Login

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-12-17
      • 1970-01-01
      • 1970-01-01
      • 2021-11-22
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多