参考:
Docker系列-(2) 镜像制作与发布 - 知乎 (zhihu.com)
Docker commit 命令 | 菜鸟教程 (runoob.com)
使用现有的容器Container制作成镜像image
1、创建一个演示容器
以ros-noetic作为镜像创建了test容器
进入test容器,该容器内默认没有vim,现在在容器中安装vim并发布为一个新镜像
安装vim
sudo apt install vim
安装成功后再使用vim,可看到成功新建编辑了一个文件。
2、将容器制作为新镜像 docker commit
docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]
OPTIONS说明:
-a :提交的镜像作者;
-c :使用Dockerfile指令来创建镜像;
-m :提交时的说明文字;(常用)
-p :在commit时,将容器暂停。
# 将test容器制作镜像
docker commit -m "img_make_test" c933 img_make:test
可以看到成功制作了镜像,下面用该镜像创建容器进行验证
验证成功
3、镜像image发布在docker hub
注册一个docker hub账号
修改镜像名称 docker tag
将镜像image的名字改为username/imgname,usernam为要上传的docker hub账号的用户名,imgname 为自定义镜像名称。上传到hub上的镜像需要上述格式名称,否则上传会报错。
docker tag
docker tag old_imgname:tag username/new_imgname:tag
docker tag后会生成一个新名字的镜像,内容不变。其实可以直接在上面容器制作为镜像时直接一步到位设置为该格式的名称,省去此步骤。
上传image docker push
先docker login 登入hub,再docker push 上传
docker login
username:xxx
password:xxx
login succeeded
docker push docwwb/img_make:test
docker search 可以验证是否上传成功。(要上传后等几分钟才能search到)
docker search username/imgname