搞懂Docker(五)- 分享应用程序

在这里插入图片描述

现在,你创建好了一个镜像,你可以把它分享出去。为了分享镜像,你需要一个Docker的注册中心。默认的注册中心是Docker Hub,这也是你所需要的镜像最主要的来源。

Docker ID

Docker ID可以让你访问Docker Hub,它是全世界最大的Docker镜像仓库。如果你没有,你需要注册一个。

获取示例程序

  1. 示例程序
    或者
    示例程序
    获取示例程序
  2. 程序结构如下
├── getting-started-app/
│ ├── package.json
│ ├── README.md
│ ├── spec/
│ ├── src/
│ └── yarn.lock

创建一个仓库

在上传镜像之前,你需要先在Docker Hub上创建一个仓库。

  1. 注册或者登录Docker Hub
  2. 点击Create Repository按钮
  3. repository name填入"getting-started",确保Visibility是public的。
  4. 选择Create

在下图,你可以看到Docker命令的例子,这个命令可以把镜像推入这个仓库。
在这里插入图片描述

上传镜像

  1. 在命令行,执行上面看到的命令。注意,命令需包含你的Docker ID。例如docker push kebikeren2/getting-started
$ docker push <Your Docker ID>/getting-started
The push refers to repository [docker.io/<Your Docker ID>/getting-started]
An image does not exist locally with the tag: <Your Docker ID>/getting-started

失败了!为什么呢?push命令找不到一个名为*/getting-started*的镜像,你执行docker image ls命令,也是找不到。
解决这个问题,你需要另外给这个镜像起个名字。
2. 使用docker login -u YOUR-USER-NAME登录进Docker Hub。
3. 使用docker tag命令赋予getting-started一个新的名字。

$ docker tag getting-started <Your Docker ID>/getting-started
  1. 现在再次执行docker push命令。你可以省略tagname,如果不写,Docker会使用latest作为tagname
$ docker push <Your Docker ID>/getting-started

在一个新的环境中运行程序

现在,你的镜像已经创建并发布到注册中心,试着在一个新的环境中运行程序。下面,我们用Play with Docker来完成。

  1. 浏览网站Play with Docker
  2. 点击Login,然后再下拉列表中选择docker
  3. 用你的Docker Hub账号登录,然后点击Start
  4. 点击左边栏中的ADD NEW INSTANCE。过一会,会有出现以下页面。
    在这里插入图片描述
  5. 在终端中,键入命令。
docker run -dp 0.0.0.0:3000:3000 <Your Docker ID>/getting-started

你会看到镜像被拉了下来,然后马上开始运行。

你可能注意到了这里的命令中,把端口映射到了跟之前不一样的地址。之前映射到宿主机的127.0.0.1:3000,现在是0.0.0.0:3000
绑定127.0.0.0只是对宿主机的回环接口开放容器的端口。绑定0.0.0.0,就会对宿主机的所有网络接口上开放容器的端口,这就使外部可以访问。

  1. 点击显示3000的这个按钮,正常情况下,网页就会显示出来。

总结

这篇文章,我们学习了如何共享你创建的镜像。然后,在一个新的环境中运行了这个镜像的一个新的实例。这在CI(持续集成)流水线中很常见,流水线制造镜像,上传镜像,然后生成环境拉取镜像。
下一篇,我们学习如何在容器化程序中持久化数据。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值