Ubuntu作为现代化的操作系统,大部分软件都需要连线安装,但有时需要在离线情况下进行软件安装。本文描述了离线安装与使用Docker社区版的基本操作。
1. 离线安装Docker社区版
1.1 下载离线包
在docker官网选择并下载需要的Docker版本和相关包。这里下载以下几个,这是本文撰写时最新的版本,将下载的包复制到离线的计算机上:
- containerd.io_1.4.12-1_amd64.deb
- docker-ce-cli_20.10.12~3-0~ubuntu-focal_amd64.deb
- docker-ce_20.10.12~3-0~ubuntu-focal_amd64.deb
1.2 依次安装上述包
sudo dpkg -i containerd.io_1.4.12-1_amd64.deb
sudo dpkg -i docker-ce-cli_20.10.12~3-0~ubuntu-focal_amd64.deb
sudo dpkg -i docker-ce_20.10.12~3-0~ubuntu-focal_amd64.deb
1.3 卸载Docker
#卸载Docker
sudo apt-get purge docker-ce docker-ce-cli containerd.io
#删除所有的镜像、容器和数据卷(数据卷的挂载位置依据实际情况而定)
sudo rm -rf /var/lib/docker
sudo rm -rf /var/lib/containerd
# 2. 离线使用Docker
2.1 镜像的导入导出
常规的Docker操作同样依赖互联网进行镜像下载,要离线使用Docker,同样需要通过能联网的计算机下载并导出相关镜像,再拷入离线计算机中使用。例如:
#通过在线计算机的Docker下载mongodb的镜像mongo
docker pull mongo:latest
#查看本地镜像,可以看到mongo
docker images
#导出mongo镜像到计算机,指定导出的文件名为mongo.tar
docker save -o mongo.tar mongo
#将mongo.tar文件拷贝到离线计算机上,并通过docker将其导入为本地镜像
#在拷入的目录下运行
docker load -i mongo.tar
2.2 镜像的删除
有时需要删除一些无用的镜像,注意,在删除镜像前,最好先停止并删除由这些镜像创建的容器。对于无法删除的镜像,可以通过以下命令强制删除。
#查看所有镜像
docker images
#根据查看到的image_id删除对应的image
docker rmi -f <image_id>
2.3 镜像修改
官方默认的镜像有时会缺少一些功能,需要在联网计算机的Docker中对原始镜像进行修改,再导出到离线计算机中。Docker镜像的制作和修改有很多办法,最简单(效率会低一些)的是使用commit
命令,在运行中的容器基础上将其制作为镜像。
首先要按照正常步骤下载镜像并在此基础上新建容器。在容器中对其进行修改,修改完成:
#查询要提交容器的id
docker container list
#根据前一步查询的container id提交并生成新的镜像
docker commit -a 'authorname' -m 'change something' <container_id> mymongo:v1
# -a 提交的镜像作者, -m 说明文字,mymongo:v1 新的镜像名称