Docker Hub 使用初探

Docker Hub 使用初探

Docker Hub 使用初探

—— 魏刘宏 2019.10.26

容器的话题越来越热,今天我也来试试容器的使用,我们以 Docker Hub 为例。

Docker Hub 官网为 https://hub.docker.com/ ,主要用于托管容器镜像,我们以 Linux 系统 centos 为例:

 

详细页面给出了拉取的命令,不带标签默认拉取最新的:

 

点击 View Available Tags 可查看所有标签,其中标签 7 应该就是标签 centos7 的简写:

 

我们在 Docker Hub 上可以注册一个账号,然后可以创建仓库,创建一个空仓库几乎只需填写名字即可:

 

创建完账户后,在 Linux 系统命令行中使用 docker login 命令在本地登陆 dockerhub:

 

这个是我之前登陆过,所以直接就登上了,不然的话,还需要键入用户名和密码的。

 

登陆成功后,就可以使用 docker pull centos:7 命令拉取官方镜像 centos 的标签号为 7 的分支镜像:

 

拉取完毕,使用 docker images 命令查看本地存在的镜像:

 

可以看到刚才拉取的 centos 镜像了。

 

我们先查看(docker ps)并停止(docker stop <Container Id>)正在运行的容器:

 

由于暂时不需要了,所以使用命令 docker rm $(docker ps -a -q) 删除所有容器:

 

再使用命令 docker rmi <Image Id> 删除镜像,仅保留刚才下载的centos 镜像:

 

下面再说明一下 docker 容器使用的其它常用命令:

# 1.以交互式创建并启动容器:

docker run -i -t –name dlgcy centos /bin/bash

 

# 2.在容器命令行状态下键入 Ctrl+P Ctrl+Q 来回到宿主机;

 

# 3.查看容器运行状态:

docker ps -a

 

# 4.再次进入容器:

docker attach dlgcy

 

我们用 docker run -i -t –name init centos:7 /bin/bash 命令启动一个 centos:7 镜像的交互式容器,名称为 init :

 

可以看到命令行前缀已改变,我们目前处于容器中的命令行环境。

 

我们按 Ctrl+P Ctrl+Q 来回到宿主机后,使用命令 docker ps –a 查看运行的容器:

 

我们再用 docker attach init 命令重新进入 init 容器:

 

我们发现没有 wget 命令,于是进行安装:

 

然后我们再回到宿主机,使用命令 docker commit <exiting-container> <hub-user>/<repo-name>[:<tag>] 将容器提交为镜像,这里实际的命令为 docker commit f9127ff7e93e dlgcy/dlgcy:centos-init :

 

可以看到本地已经多了个镜像。这里是将容器提交为镜像,如果是要将已经存在的镜像打标签为新的镜像,则使用的命令为 docker tag <existing-image> <hub-user>/<repo-name>[:<tag>]

 

现在我们再使用命令 docker push <hub-user>/<repo-name>:<tag> 将提交推送到 dockerhub 服务器上:

 

到网页上看看:

 

可以看到这个镜像已经传上去了。

并且,我们本地可以使用该镜像来创建容器(使用 -p 2333:2333 这种形式进行端口映射):

 

这样我们就完成了拉取、提交、推送的完整过程,可见这和 Git 的使用方法是一脉相承的。

 

打印本文

发表评论