Docker 入门(二)

2019-08-01  本文已影响0人  __笙歌4J

分享你的镜像

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

注册中心是存储库的集合,而存储库是镜像的集合——有点像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
上一篇下一篇

猜你喜欢

热点阅读