介绍 如果我们自己在本地制作一个镜像,想提供给他人使用或者作为自己的日常学习,那么我们可以把我们制作的镜像发布到DockerHub 上,这样不管是其它人还是我们自己就可以直接使用 docker pull 命令获取到我们发布的镜像,这样我们再也不用担心一不小心把本地镜像删除了; 当然发布到DockerHub 上的镜像是公开的,每个人都能获取,如果我们希望我们发布的镜像是私有的只有我们自己可以看见,我们可以利用官方提供的registry 镜像来搭建自己私有的镜像仓库,当然我们也还可以使用Harbor 来搭建企业级私有仓库服务器
镜像发布到 DockerHub ,首先我们需要注册 DockerHub 账号,假设现在大家都有了DokcerHub 的账号,那么接下来我们在本地制作一个自己的镜像
创建一个getip目录,进入到getip目录,编写Dockerfile
1 2 3 4 5 $ mkdir getip $ cd getip $ vim Dockerfile
Dokcerfile文件中内容
1 2 3 4 5 6 7 FROM ubuntu:16.04 RUN apt-get update \ && apt-get install -y curl \ && rm -rf /var/lib/apt/lists/* ENTRYPOINT ["curl" ,"-s" ,"http://ip.cn" ]
在getip目录执行 docker build 命令构建镜像
1 2 docker build -t sqgulj/get-ip:1.0 .
查看构建的镜像
1 2 3 $ docker images; REPOSITORY TAG IMAGE ID CREATED SIZE sqgulj/get-ip 1.0 e381e0c1b380 3 hours ago 129MB
在终端使用 docker login 命令,输入自己的DockerHub 账号信息进行登录
1 2 3 docker login Login with your Docker ID to push and pull images from Docker Hub. If you don't have a Docker ID, head over to https://hub.docker.com to create one. Username (sqgulj):
使用 docker push 命令把我刚制作的镜像推送到DockerHub
1 2 3 4 5 6 7 8 9 $ docker push sqgulj/get-ip The push refers to repository [docker.io/sqgulj/get-ip] 83dc3de4596c: Pushed db584c622b50: Mounted from library/ubuntu 52a7ea2bb533: Mounted from library/ubuntu 52f389ea437e: Mounted from library/ubuntu 88888b9b1b5b: Mounted from library/ubuntu a94e0d5a7c40: Mounted from library/ubuntu 1.0: digest: sha256:1a3fa4e93464054c2f8050d6f846cccbe943c5e9f6d67f98f2013a32652f3f0b size: 1568
浏览器登录到DockerHub 查看我们推送的镜像