准备:
一台与服务器系统版本相同且可以连接外网的服务器,我用的是虚拟机
版本信息:
centos 7.2 3.10.0-327.el7.x86_64
docker-ce-19.03.4-3.el7.x86_64
一、添加源
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
# 或者这个源
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
这步可能报错,也没影响,反正都连不了外网,也就不能下载镜像了
二、下载安装包
在虚拟机上下载安装包
yum install docker-ce --downloadonly --downloaddir=./
这个命令已经用过很多次了,–downloadonly只下载,–downloaddir下载文件保存目录。如果只要下载某个包,还有这个命令
yumdownloader docker-ce
三、安装
rpm -Uvh *.rpm
docker -v 查看版本
四、导入、导出镜像
因为服务器不能下载镜像,所以需要通过虚拟机环境下载好镜像,然后打包,再导入到服务上的docker,导出、导入的命令分别是
# 导出命令
docker save [options] images [images...]
# 导入命令
docker load [options]
示例
docker save -o nginx.tar nginx:latest
或
docker save > nginx.tar nginx:latest
其中-o和>表示输出到文件,nginx.tar为目标文件,nginx:latest是源镜像名(name:tag)
docker load -i nginx.tar
或
docker load < nginx.tar
其中-i和<表示从文件输入。会成功导入镜像及相关元数据,包括tag信息
五、导入、导出容器
命令:
# 导出:
docker export [options] container
# 导入:
docker import [options] file|URL|- [REPOSITORY[:TAG]]
示例
docker export -o nginx-test.tar nginx-test
其中-o表示输出到文件,nginx-test.tar为目标文件,nginx-test是源容器名(name)
docker import nginx-test.tar nginx:imp
或
cat nginx-test.tar | docker import - nginx:imp
最后:
可以依据具体使用场景来选择命令
若是只想备份images,使用save、load即可
若是在启动容器后,容器内容有变化,需要备份,则使用export、import
六、修改docker默认存储位置
当磁盘空间不够时,需要修改docker的默认存储位置:
docker 启动之后,可以用docker info查看docker 信息,其默认存储位置为/var/lib/docker
将–graph /data/docker添加在docker.service文件中的ExecStart字段后面,其中/data/docker为你需要修改的存储目录
$ vim /usr/lib/systemd/system/docker.service
……
ExecStart=/usr/bin/dockerd \
--graph /data/docker
……
重启服务
$ systemctl daemon-reload
$ systemctl restart docker
之后用docker info可以看到目录已经改为/data/docker了
参考链接:
https://blog.youkuaiyun.com/ncdx111/article/details/79878098
https://blog.youkuaiyun.com/bacteriumX/article/details/88417098