前言
有时候,生产环境中的所需的镜像在hub上找不到,需要我们自己去自定义好这个镜像,然后将这个镜像保存在自己的hub上,便于以后的pull。所以这篇主要来讲解一下然后构建自己的镜像,然后上传至私有hub。
Docker commit
docker commit
可以帮助我们在本地docker仓库中生成自定义镜像。
首先启动某个容器,然后在该容器上部署上自己的应用构建好自定义容器。
1 | $ docker run -it unbuntu /bin/bash |
在该容器上创建一个文件夹,表示对该容器的一次构建。
1 | $ mdkir test1 |
退出该容器后,可以使用docker ps -a
查看所有的容器。
1 | $ docker ps -a |
可以看到容器已经退出运行了,不过该容器还可以转成一个镜像。使用commit命令。格式如下:
1 | docker commit <container ID> <new image name> |
1 | $ docker commit 78f2a newbuntu |
可以使用docker images看到自定义的镜像已经生成了。
至此,我们已经在本地仓库中构建好了自己的镜像,下面使用docker push上传至私有Hub上。
Docker push
要上传至私有hub上,首先要使用docker login
登录上docker hub
。所以你需要先去docker的官网注册一个账号,与github类似。
使用dcoker login
登录。
在使用docker push
之前,需要为你的本地仓库中的镜像重命名,因为上传至私有hub上,对镜像的命名是有一定规范的,即格式为usernmae/imgaename:tag
,所以先使用docker tag
对镜像重命名。
1 | $ docker tag newbuntu:latest callmejiagu/newubuntu:v1 |
可以看到本地镜像库中有一个新的命名镜像。
使用docker push <image name>
进行上传。
1 | $ docker push callmejiagu/newubuntu |
在自己的私有hub上可以看到,镜像已经上传进来。