学习 Docker – (4) 分享镜像

第五节:创建 Docker Hub 对象和仓库

https://docs.docker.com/linux/step_five/

你已经构建了很酷的东西,你应该分享它。在这个章节,你就要做这个事情。你需要一个 Docker Hub 的账号。然后你将镜像推送上去,使得其他人可以在 Docker 上面运行它。

第一步:注册一个账号

垃圾时间,好生废话,直接带过

1. 打开网页 http://hub.docker.com
2. 填写注册页面的表单
3. 按一下注册按钮

第二步:验证你的邮件并添加一个仓库

在你可以在 hub 上面分享任何东西之前,你需要验证你的电子邮件地址

1. 打开邮箱收件箱
2. 确认邮件
3. 废话
4. 选择创建仓库
5. 提供一个仓库名称和短描述
6. 确信可见性设为了公开 (Public)

当你完成这些,你的表单看起来会是这样的:

docker

7. 完成之后按创建按钮

这节真的废话奇多,直接下一章。

第六节:标签 (Tag)、推送 (push)、和拉取 (pull) 你的镜像

在这一节,你会给你的 docker-whale 镜像加上标签并且推送到你新创建的仓库里面。当你完成这些,你就可以通过拉取来测试到你的新镜像。

第一步:添加标签并且推送镜像

1. 返回终端
2. 列出你当前的镜像
$ docker images
REPOSITORY           TAG          IMAGE ID            CREATED             VIRTUAL SIZE
docker-whale         latest       7d9495d03763        38 minutes ago      273.7 MB
docker/whalesay      latest       fb434121fc77        4 hours ago         247 MB
hello-world          latest       91c95931e552        5 weeks ago         910 B
3. 找到你的 docker-whale 镜像的 IMAGE ID

在这个例子里面,镜像的 id 是 7d9495d03763

你现在会注意到,REPOSITORY 列展示了 docker-whale 仓库,但是没有命名空间。你需要为 Docker Hub 引入 namespace 来将其指派到你的账号。这个 namespace 是和你的账号名称一样的。

4. 使用 IMAGE IDdocker tag 命令来标记你的 docker-whale 镜像

你输入的命令是这样的:

docker tag 7d9495d03763 huangwc/docker-whale:latest

docker: 告诉操作系统你在使用 docker 程序
tag: 一个子命令用于标记镜像
7d9495d03763: 镜像 id
huangwc: 你在 Docker Hub 的账号名称
docker-whale: 镜像的名称
latest: 版本标签(label)或者标签(tag)

当然,你的账号名是你自己所有的。所以你输入你的镜像 ID 和你的账号名称然后按回车:

$ docker tag 7d9495d03763 huangwc/docker-whale:latest
5. 输入 docker images 再来看看新的已标记的镜像
$ docker images
REPOSITORY                  TAG       IMAGE ID        CREATED          VIRTUAL SIZE
huangwc/docker-whale   latest    7d9495d03763    5 minutes ago    273.7 MB
docker-whale                latest    7d9495d03763    2 hours ago      273.7 MB
docker/whalesay             latest    fb434121fc77    5 hours ago      247 MB
hello-world                 latest    91c95931e552    5 weeks ago      910 B
6. 使用 docker login 命令来在命令行中登录到 Docker Hub

这个命令的格式是:

docker login --username=huangwc --email=xxxxx@docker.com

然后你会得到提示,输入密码回车之后:

$ docker login --username=huangwc --email=xxxxx@docker.com
Password:
WARNING: login credentials saved in C:\Users\sven\.docker\config.json
Login Succeeded
7. 使用 docker push 命令来将你的镜像推送到新的仓库
$ docker push huangwc/docker-whale
The push refers to a repository [huangwc/docker-whale] (len: 1)
7d9495d03763: Image already exists
c81071adeeb5: Image successfully pushed
eb06e47a01d2: Image successfully pushed
fb434121fc77: Image successfully pushed
5d5bd9951e26: Image successfully pushed
99da72cfe067: Image successfully pushed
1722f41ddcb5: Image successfully pushed
5b74edbcaa5b: Image successfully pushed
676c4a1897e6: Image successfully pushed
07f8e8c5e660: Image successfully pushed
37bea4ee0c81: Image successfully pushed
a82efea989f9: Image successfully pushed
e9e06b06e14c: Image successfully pushed
Digest: sha256:ad89e88beb7dc73bf55d456e2c600e0a39dd6c9500d7cd8d1025626c4b985011
8. 回到 Docker Hub 上面的个人信息页查看你的新镜像

第二步:拉取你的新镜像

这一步,你要从 hub 上面拉取你刚刚推上去的镜像。在你做这个之前,你会需要删除你本地机器上面的镜像。如果保留了这个,Docker 就不会执行拉取——因为这两个镜像是一样的。

1. 光标移到命令行提示符
2. 使用 docker images 来列出本地机器上的镜像。
$ docker images
REPOSITORY                  TAG       IMAGE ID        CREATED          VIRTUAL SIZE
huangwc/docker-whale   latest    7d9495d03763    5 minutes ago    273.7 MB
docker-whale                latest    7d9495d03763    2 hours ago      273.7 MB
docker/whalesay             latest    fb434121fc77    5 hours ago      247 MB
hello-world                 latest    91c95931e552    5 weeks ago      910 B

为了测试成功,你需要在本地系统中移除 huangwc/docekr-whaledocker-whale 镜像。删除了下一步的 docker pull 才能成功。

3. 使用 docker rmi 来移除 huangwc/docker-whaledocker-whale 镜像。

你可以使用 ID 或者名称来删除一个镜像。

$ docker rmi -f 7d9495d03763
$ docker rmi -f docker-whale
  1. 使用 docker pull 命令从仓库里面拉取新的镜像

这个命令应该包含了你在 Docker Hub 上面的用户名。

docker pull huangwc/docker-whale

由于这个镜像已经不再存在于你的本地系统,Docker 下载它。

 $ docker run huangwc/docker-whale
  Unable to find image 'huangwc/docker-whale:latest' locally
  latest: Pulling from huangwc/docker-whale
  eb06e47a01d2: Pull complete
  c81071adeeb5: Pull complete
  7d9495d03763: Already exists
  e9e06b06e14c: Already exists
  a82efea989f9: Already exists
  37bea4ee0c81: Already exists
  07f8e8c5e660: Already exists
  676c4a1897e6: Already exists
  5b74edbcaa5b: Already exists
  1722f41ddcb5: Already exists
  99da72cfe067: Already exists
  5d5bd9951e26: Already exists
  fb434121fc77: Already exists
  Digest: sha256:ad89e88beb7dc73bf55d456e2c600e0a39dd6c9500d7cd8d1025626c4b985011
  Status: Downloaded newer image for huangwc/docker-whale:latest
   ________________________________________
  / Having wandered helplessly into a      \
  | blinding snowstorm Sam was greatly     |
  | relieved to see a sturdy Saint Bernard |
  | dog bounding toward him with the       |
  | traditional keg of brandy strapped to  |
  | his collar.                            |
  |                                        |
  | "At last," cried Sam, "man's best      |
  \ friend -- and a great big dog, too!"   /
   ----------------------------------------
                  \
                   \
                    \
                            ##        .            
                      ## ## ##       ==            
                   ## ## ## ##      ===            
               /""""""""""""""""___/ ===        
          ~~~ {~~ ~~~~ ~~~ ~~~~ ~~ ~ /  ===- ~~~   
               \______ o          __/            
                \    \        __/             
                  \____\______/   

你已经完成了许多,你已经完成了完成了所有的下面基本的 Docker 任务:

  • 安装 Docker
  • 在容器中运行一个软件景象
  • 在 DockerHub 上面找到感兴趣的镜像
  • 在本地机器中运行镜像
  • 修改镜像,创建你自己的镜像然后运行它
  • 创建一个 Docker Hub 账号和仓库
  • 将你的镜像推送到 Docker Hub 并与他人分享

【转载请附】愿以此功德,回向 >>

原文链接:https://www.huangwenchao.com.cn/2016/01/learn-docker-4.html【学习 Docker – (4) 分享镜像】

发表评论

电子邮件地址不会被公开。 必填项已用*标注