制作自己的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的主要内容,如果未能解决你的问题,请参考以下文章