Docker—将容器导出为镜像

一台设备上有个docker容器,很好用,但是没有Dockfile,并且镜像hub是私有的不允许pull,但我想在另一台设备上使用这个镜像,应该怎么做呢?本文就介绍下操作方法。

一、导出容器为镜像

# 1.查看运行中的容器
docker ps
    ONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
    1fa529a5fa31 autoware/autoware:latest-melodic-cuda "/tmp/entrypoint.sh" 3 hours ago Up 3 hours compassionate_liskov
# 2.导出容器为镜像
# docker commit -a "用户名" -m "镜像注释"  ${需要导出的容器ID}  ${用户名}/${镜像名称}:${版本号}
docker commit -a "yanjingang" -m "autoware.ai latest-melodic-cuda"  1fa529a5fa31 yanjingang/autoware:latest-melodic-cuda
    sha256:5557c9ef52f5023a329e115e86cc31dd52bb4daeea0f993508f579fea97d6f95
或分两步也可以:
docker commit 1fa529a5fa31 autoware:latest-melodic-cuda              //没有版本号默认latest
docker tag autoware yanjingang/autoware:latest-melodic-cuda

# 3.检查镜像
docker image ls
    REPOSITORY TAG IMAGE ID CREATED SIZE
    yanjingang/autoware latest-melodic-cuda 5557c9ef52f5 10 seconds ago 10.1GB

二、镜像远程push/pull

直接push到远程docker-hub,方便别的设备pull拉取:

# 1.登陆docker-hub
docker login

# 2.push本地镜像到hub
docker push yanjingang/autoware:latest-melodic-cuda

# 3.pull远程镜像到本地
docker pull yanjingang/autoware:latest-melodic-cuda

三、镜像本地打包与载入

有时国内访问docker-hub不便,或者其他hub不稳定,想在本地保存一份,可以通过以下方法打包和加载:

# 1.镜像打包为tar包
sudo docker save -o autoware-latest-melodic-cuda.tar  yanjingang/autoware:latest-melodic-cuda

# 2.从tar包载入镜像(如果同名镜像已存在,需要先sudo docker image rm 9bea76b87e92)
sudo docker load -i autoware-latest-melodic-cuda.tar

 

参考:

Docker 使用-将容器打成镜像

Docker:将容器导出为镜像并push到hub仓库

欢迎关注下方“非著名资深码农“公众号进行交流~

发表评论

邮箱地址不会被公开。