美文网首页
Docker 入门(二)

Docker 入门(二)

作者: __笙歌4J | 来源:发表于2019-08-01 14:31 被阅读0次

    分享你的镜像

    为了演示我们刚刚创建的东西的可移植性,让我们上传构建的映像并在其他地方运行它。毕竟,当您想要将容器部署到生产环境中时,您需要知道如何推送到注册中心。

    注册中心是存储库的集合,而存储库是镜像的集合——有点像GitHub存储库,只是代码已经构建好了。注册中心上的帐户可以创建许多存储库。docker CLI默认使用docker的公共注册表

    注意:我们在这里使用Docker的公共注册中心,因为它是免费的,而且是预先配置的,但是有许多公共注册中心可供选择,您也可以使用Docker Trusted registry设置自己的私有注册中心。

    使用Docker ID登录到公共注册中心

    如果你没有Docker帐户,在hub.docker.com注册一个。记下你的用户名。
    在本地计算机上登录到Docker公共注册中心。

    $ docker login
    

    镜像标记

    将本地镜像与注册中心上的存储库关联的符号是username/repository:tag。标记是可选的,但推荐使用它,因为注册中心使用它来为Docker镜像提供一个版本。为上下文提供存储库和标记有意义的名称,例如get-started:part2。这将镜像放入get-started存储库并将其标记为part2。

    现在,把它们放在一起来标签镜像。使用用户名、存储库和标记名称运行 docker tag image,以便将镜像上传到所需的目的地。该命令的语法为:

    docker tag image username/repository:tag
    

    例如:

    docker tag friendlyhello gordon/get-started:part2
    

    运行docker image ls查看新标记的镜像。

    $ docker image ls
    
    REPOSITORY               TAG                 IMAGE ID            CREATED             SIZE
    friendlyhello            latest              d9e555c53008        3 minutes ago       195MB
    gordon/get-started         part2               d9e555c53008        3 minutes ago       195MB
    python                   2.7-slim            1c7128a655f6        5 days ago          183MB
    ...
    

    发布镜像

    上传您的标签镜像到存储库:

    docker push username/repository:tag
    

    一旦完成,此上传的结果将公开可用。如果您登录到Docker Hub,您将在那里看到带有pull命令的新镜像。

    从远程存储库拉出镜像并运行

    从现在开始,您可以使用docker run,在任何机器上运行您的应用程序:

    docker run -p 4000:80 username/repository:tag
    

    如果镜像在本地找不到,Docker将从存储库中提取它。

    $ docker run -p 4000:80 gordon/get-started:part2
    Unable to find image 'gordon/get-started:part2' locally
    part2: Pulling from gordon/get-started
    10a267c67f42: Already exists
    f68a39a6a5e4: Already exists
    9beaffc0cf19: Already exists
    3c1fe835fb6b: Already exists
    4c9f1fa8fcb8: Already exists
    ee7d8f576a14: Already exists
    fbccdcced46e: Already exists
    Digest: sha256:0601c866aab2adcc6498200efd0f754037e909e5fd42069adeff72d1e2439068
    Status: Downloaded newer image for gordon/get-started:part2
     * Running on http://0.0.0.0:80/ (Press CTRL+C to quit)
    

    无论docker run在何处执行,它都会提取您的镜像、Python和所有依赖项。并运行您的代码。它以一个简洁的小程序包的形式运行,您不需要在主机上安装任何东西就可以运行它。

    本节命令:

    docker build -t friendlyhello .  # Create image using this directory's Dockerfile
    docker run -p 4000:80 friendlyhello  # Run "friendlyhello" mapping port 4000 to 80
    docker run -d -p 4000:80 friendlyhello         # Same thing, but in detached mode
    docker container ls                                # List all running containers
    docker container ls -a             # List all containers, even those not running
    docker container stop <hash>           # Gracefully stop the specified container
    docker container kill <hash>         # Force shutdown of the specified container
    docker container rm <hash>        # Remove specified container from this machine
    docker container rm $(docker container ls -a -q)         # Remove all containers
    docker image ls -a                             # List all images on this machine
    docker image rm <image id>            # Remove specified image from this machine
    docker image rm $(docker image ls -a -q)   # Remove all images from this machine
    docker login             # Log in this CLI session using your Docker credentials
    docker tag <image> username/repository:tag  # Tag <image> for upload to registry
    docker push username/repository:tag            # Upload tagged image to registry
    docker run username/repository:tag                   # Run image from a registry
    

    相关文章

      网友评论

          本文标题:Docker 入门(二)

          本文链接:https://www.haomeiwen.com/subject/etbqdctx.html