本文使用的docker版本如下:
Docker 极速下载 提供Docker 的安装包以及周边高速镜像
https://download.docker.com/linux/static/stable/x86_64/docker-20.10.7.tgz
, 下载v20.10.17版本tar -zxvf docker-20.10.7.tgz
cp docker/* /usr/bin/
# 启动Docker守护程序
dockerd &
docker info
验证是否安装成功,执行docker info命令,若正常打印版本信息则安装成功。
vi /usr/lib/systemd/system/docker.service
[Unit]
Description=Docker Application Container Engine
Documentation=https://docs.docker.com
After=network-online.target firewalld.service
Wants=network-online.target
[Service]
Type=notify
ExecStart=/usr/bin/dockerd
ExecReload=/bin/kill -s HUP $MAINPID
LimitNOFILE=infinity
LimitNPROC=infinity
TimeoutStartSec=0
Delegate=yes
KillMode=process
Restart=on-failure
StartLimitBurst=3
StartLimitInterval=60s
[Install]
WantedBy=multi-user.target
重启守护进程
systemctl daemon-reload
#启动 / 停止 docker 服务
systemctl start/stop docker
#开机自启/取消开机自启 docker 服务
systemctl enable/disable docker
systemctl status docker
curl -L https://get.daocloud.io/docker/compose/releases/download/v2.7.0/docker-compose-`uname -s`-`uname -m` \
> /usr/local/bin/docker-compose
# 上传到服务器,然后mv到/usr/local/bin目录下
chmod +x /usr/local/bin/docker-compose
docker-compose version
结果展示:Docker Compose version v2.7.0
镜像与容器导出的区别:
通过 docker images --tree
可以查看到镜像的所有层,就会发现, docker export
丢失了所有的历史,而docker save
则会保存所有历史
docker save 命令用于持久化 镜像,先获得镜像名称,再执行保存:
docker images
docker save image_name -o ~/save.tar
docker tag 7d2986d15386 apache/apisix:2.15.0-alpine
docker save -o 文件保存路径/文件名.tar REPOSITORY:TAG
docker save -o nginx.tar nginx:1.19.0-alpine
注意: 如果镜像是在远程仓库,执行保存镜像的时候可能会报 Cowardly refusing to save to a terminal. Use the -o flag or redirect
. 的错,可以通过 docker save image_name > image_name.tar
将镜像从远程仓库持久化到本地。
docker load < ~/save.tar
docker images
docker export 命令用于持久化 容器,先获取容器ID,再执行保存。
docker ps -a
docker export container_id > ~/export.tar
cat ~/export.tar | docker import - my-images:latest
docker images
将一台服务器的所有镜像导出到一个文件,然后远程复制到其它服务器,再一次性导入
# 导出所有镜像
docker save $(docker images --format '{{.Repository}}:{{.Tag}}') -o allinone.tar
# 远程复制
scp 172.10.1.10:/home/allinone.tar ./
# 一次性导入所有镜像
docker load -i allinone.tar