docker:向已有的镜像中添加新内容

仓库地址

这里使用的是腾讯的coding

xxx-devops-docker.pkg.coding.net

登录(登录是为了推送镜像到镜像仓库)

[root@VM-0-11-centos test]# docker login -u 用户名 xxx-devops-docker.pkg.coding.net
Password: 
WARNING! Your password will be stored unencrypted in /root/.docker/config.json.
Configure a credential helper to remove this warning. See
https://docs.docker.com/engine/reference/commandline/login/#credentials-store

Login Succeeded

拉取操作镜像

docker pull xxx-devops-docker.pkg.coding.net/public-repository/sl/node:0.0.2

查看拉取的镜像

[root@VM-0-11-centos test]# docker images
REPOSITORY                                                     TAG        IMAGE ID       CREATED         SIZE
xxx-devops-docker.pkg.coding.net/public-repository/sl/node   0.0.2      5d6d985c0849   5 seconds ago   110MB

运行一次性容器

docker run -it 5d6d985c0849 /bin/sh

在容器中操作(以安装node依赖为例)

npm install generic-pool

退出容器

exit

查看刚才运行的容器信息

[root@VM-0-11-centos test]# docker container ls -a
CONTAINER ID   IMAGE                   COMMAND                  CREATED          STATUS                      PORTS     NAMES
39eff2c2f679   c24e6264079d            "docker-entrypoint.s…"   13 minutes ago   Exited (1) 15 seconds ago             condescending_meitner

将容器提交为新的镜像

[root@VM-0-11-centos test]# docker commit 39eff2c2f679 xxx-devops-docker.pkg.coding.net/public-repository/sl/node:0.0.2
sha256:5d6d985c084930af6e7cb991c39385300a9a5c99b5c4101323a37d9d1cd616f1

查看新的镜像,下面的是因为新提交的tag和之前的重复了

[root@VM-0-11-centos test]# docker images
REPOSITORY                                                   TAG        IMAGE ID       CREATED         SIZE
xxx-devops-docker.pkg.coding.net/public-repository/sl/node   0.0.2      5d6d985c0849   5 seconds ago   110MB
xxx-devops-docker.pkg.coding.net/public-repository/sl/node   <none>     c24e6264079d   3 weeks ago     110MB

推送新镜像到仓库

在推送之前,一定要先确保新的镜像没问题,再推送到远端。
注:如果镜像是通过Dockerfile生成的,建议使用Dockerfile去完成添加内容的工作。因为开发环境是自己的机器,上面的k8sdocker都是公司安装的,使用docker命令搞的镜像是没问题的,但是外网用的腾讯云的k8s集群,我使用docker命令提交内容,生成的镜像竟然出现了额外的内容,导致我的镜像无法使用。

docker push xxx-devops-docker.pkg.coding.net/public-repository/sl/node:0.0.2

小插曲,再提醒一下

在推送之前,一定要先确保新的镜像没问题,再推送到远端。
注:如果镜像是通过Dockerfile生成的,建议使用Dockerfile去完成添加内容的工作。因为开发环境是自己的机器,上面的k8sdocker都是公司安装的,使用docker命令搞的镜像是没问题的,但是外网用的腾讯云的k8s集群,我使用docker命令提交内容,生成的镜像竟然出现了额外的内容,导致我的镜像无法使用。

猜你喜欢

转载自blog.csdn.net/qq_30038111/article/details/113360087