前言
本篇博客介绍docker更新镜像:
在已经制作mmdetection镜像的基础上,安装vim与tmux包并生成新的镜像,最后推送到服务器habor上。
提示:以下是本篇文章正文内容。
一、docker的基本知识
首先要了解docker中的三个基本的概念:镜像image,容器container,仓库repository
镜像:就相当于是一个root文件系统,比如官方镜像ununtu:16.04就包含了完整的一套Ubuntu16.04最小系统的root文件系统。(参考,菜鸟教程)
容器:镜像与容器的关系,就像是类和实例的关系(面向对象程序设计语言中),又像程序和进程的关系;镜像是静态的,容器是动态的,是镜像运行时的实体。
仓库:仓库可看成一个代码控制中心,用来保存镜像。
二、使用步骤
1.docker run 运行镜像
在已经制作完成mmdetection镜像的前提下:可以使用docker images查看镜像。
在更新镜像之前,我们需要使用镜像来创建一个容器。
(base) zz@ZZ:~$ docker run -t -i 211.82.236.15:8888/dc305/mmdet:1.0 /bin/bash
root@a3f9bba91837:/#
root@a3f9bba91837表示已经进入到容器。
2.安装vim与tmux包
在安装各种包之前,需要在运行的容器中使用apt-get update命令进行更新。
代码如下(示例):
root@a3f9bba91837:/# apt-get update
root@a3f9bba91837:/# apt-get install vim-gtk
root@a3f9bba91837:/# apt-get install tmux
3.退出容器,docker commit 制作镜像
首先:退出容器
root@a3f9bba91837:/# exit
接着:使用docker commit命令,具体如下:
(base) zz@ZZ:~$ docker commit -m="vim&tmux" -a="dc305" e218edb10161 211.82.236.15:8888/dc305/mmdet:1.1
这里镜像制作完毕,可以使用docker images进行查看,如本文章中第一张图片中蓝色框中的镜像。
4.上传镜像
执行docker push 命令,将制作完成的镜像推送到服务器harbor中(镜像名称需符合相应的要求,否则需要docker tag进行重新标记,本文略过此步骤)
首先:登录服务器habor
(base) zz@ZZ:~$ docker login 211.82.236.15:8888
接着:执行docker push命令
(base) zz@ZZ:~$ docker push 211.82.236.15:8888/dc305/mmdet:1.1
这里镜像制作完毕,可以使用docker images进行查看,如本文章中第一张图片中蓝色框中的镜像。
总结
在已经制作好的mmdetection的镜像的基础上,安装新的包,制作新的镜像并push到harbor。在此过程中,熟悉images,container,repository三个概念,以及运用docker中images, ps,run, commit, push,login等命令。(命令具体的详细讲解:可以参考菜鸟教程
坑:利用dockerfile制作镜像