制作自己的docker镜像并上传到hub.docker

Posted wei198621

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了制作自己的docker镜像并上传到hub.docker相关的知识,希望对你有一定的参考价值。

制作镜像之前,先要获取基础镜像

前提是,你先要有一台安装好docker 的机器,ubuntu 、ctenos 、windows 、MAC 都可以

具体的docker 安装教程可以自行去百度找找,我这里就不赘述了,也可以看我之前写的一篇

安装docker的教程

废话不多说,开整:

我这里是用的ubuntu16.04的服务器做演示(在安装好docker的前提下)

有没有有安装好docker 使用命令:docker
 

 

出现图片上的内容,说明已经安装完毕

下面开始制作镜像

制作镜像前,你先要有基础镜像,我们这里从ubuntu 的docker hub上拉取镜像下来:

docker pulll ubuntu:18.04

 

 

 

step 01  从docker 仓库 下载镜像  

[root@k8s 104 ~]# docker pull ubuntu:18.04
18.04: Pulling from library/ubuntu
Digest: sha256:3b8692dc4474d4f6043fae285676699361792ce1828e22b1b57367b5c05457e3
Status: Image is up to date for ubuntu:18.04




step 02  运行镜像启动容器 

[root@k8s 104 mydocker]# docker run -it ubuntu:18.04 /bin/bash
root@20541100f7f9:/# 




step 03  在镜像内  执行更新操作 安装vim .... 

apt-get update
apt-get install vim

 

然后让这个镜像运行起来:

docker run -it ubuntu:1804 /bin/bash

会自己进入到新创建的镜像当中去

之后的内容就在这个基础镜像上做你想要的修改了

先apt-get update 一下

然后开始安装我们需要安装的内容

 我这里随便做个演示

更新完以后,安装vim,apt-get install vim

 安装完vim 运行一下vim

vim 安装完成了,我们就可以把我们的镜像打包了

然后我在docker 容器外,就是你的宿主机上使用下面的命令打包镜像                          

 


--- step 04   docker ps  查询container id  

[root@k8s 104 ~]# docker ps
CONTAINER ID        IMAGE                                                           COMMAND                  CREATED             STATUS              PORTS               NAMES
20541100f7f9        ubuntu:18.04                                                    "/bin/bash"              25 minutes ago      Up 25 minutes                           peaceful_wright
b9e1fba830e6        4689081edb10                                                    "/storage-provisioner"   2 hours ago         Up 2 hours                              k8s_storage-provisioner_storage-provisioner_kube-system_2a706852-c868-11eb-bc7a-000c29003561_44
412372849a96        nginx                                                           "/docker-entrypoint.…"   2 hours ago         Up 2 hours                              k8s_nginx_nginx_default_e60264df-a1a1-43b3-a3c8-2af1b2b62abc_4
2947872f87fb        nginx                                                           "/docker-entrypoint.…"   2 hours ago         Up 2 hours                              k8s_nginx_nginx-deployment-7bffc778db-hrtgr_default_29968733-51fe-4939-9aad-d891bf49de2c_4



----  step 05   根据当前容器id 生成新的docker镜像 

-m 参数后面跟一下镜像的信息
-a 参数是作者信息,自行填写
20541100f7f9 这一串是docker 容器的ID ,见上面 docker  ps 指令内容
后面的参数,gousheng8601,是你docker hub上的账号
斜杠后面,是你的dockcer hub 上的仓库名 :你的镜像tag 标签

运行后会生成一个新的镜像

[root@k8s 104 ~]# sudo docker commit -m="ubuntu-vim" -a="20210720" 20541100f7f9  gousheng8601/ubuntu18.04:tag20210720
sha256:99eb880a005bbfc1cf312346294d2a6b400cb640feedc0f6c86aac4c4a6aa617

----  step 06  查询新生成的镜像 

[root@k8s 104 ~]# docker images
REPOSITORY                                                                        TAG                 IMAGE ID            CREATED             SIZE
gousheng8601/ubuntu18.04                                                          tag20210720         99eb880a005b        51 seconds ago      63.1MB
ubuntu                                                                            18.04               fbf60236a8e3        5 days ago          63.1MB
nginx                                                                             latest              4cdc5dd7eaad        12 days ago         133MB
registry.cn-hangzhou.aliyuncs.com/google_containers/kube-proxy                    v1.15.0             d235b23c3570        2 years ago         82.4MB


----  step  07   将新生成的镜像发送到gousheng8601 这个镜像仓库
这里就是我们刚刚打好的镜像
上传镜像到docker hub上
sudo docker push gousheng8601/ubuntu18.04:tag20210720
会在你的docker hub 仓库中生成

[root@k8s 104 ~]# sudo docker push gousheng8601/ubuntu18.04:tag20210720
The push refers to repository [docker.io/gousheng8601/ubuntu18.04]
878dab86cf0f: Pushed 
tag20210720: digest: sha256:79cd43434b977a0597cc18f5ae64c2d96157588d80d9f3294a0ed88d06958535 size: 529

使用其他机器


----查看docker 是否可用  

[root@k8s 104 ~]# docker version
Client:
 Version:	17.12.1-ce
 API version:	1.35
 Go version:	go1.9.4
 Git commit:	7390fc6
 Built:	Tue Feb 27 22:15:20 2018
 OS/Arch:	linux/amd64

Server:
 Engine:
  Version:	17.12.1-ce
  API version:	1.35 (minimum version 1.12)
  Go version:	go1.9.4
  Git commit:	7390fc6
  Built:	Tue Feb 27 22:17:54 2018
  OS/Arch:	linux/amd64
  Experimental:	false





----获取上面提交的 改动版 ubuntu 镜像 



[root@k8s 104 ~]# docker pull docker.io/gousheng8601/ubuntu18.04:tag20210720
tag20210720: Pulling from gousheng8601/ubuntu18.04
Digest: sha256:79cd43434b977a0597cc18f5ae64c2d96157588d80d9f3294a0ed88d06958535
Status: Image is up to date for gousheng8601/ubuntu18.04:tag20210720




参考 :  https://blog.csdn.net/u012798683/article/details/102632435

以上是关于制作自己的docker镜像并上传到hub.docker的主要内容,如果未能解决你的问题,请参考以下文章

任务03编排Docker应用

任务03编排Docker应用

任务03编排Docker应用

Docker 镜像的制作上传拉取和 部署

docker学习11-上传本地镜像到镜像仓库

openstack怎么制作centos7的镜像