本文使用的docker版本如下:

  • docker 版本:v2.7.0
  • docker-compose 版本:v20.10.17
    针对在内网服务器离线安装、容器的导入、导出操作进行总结

1. Docker 极速下载

Docker 极速下载 提供Docker 的安装包以及周边高速镜像

2. 离线安装docker

2.1. 安装步骤

  • 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 &

2.2. 验证

docker info 验证是否安装成功,执行docker info命令,若正常打印版本信息则安装成功。

2.3. 注册成系统服务

  • 在 /usr/lib/systemd/system/ 目录下创建docker.service 文件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
  • 启动 / 停止 docker 服务
重启守护进程
systemctl daemon-reload
#启动 / 停止 docker 服务
systemctl start/stop docker
#开机自启/取消开机自启 docker 服务
systemctl enable/disable docker
  • 查看docker状态
    systemctl status docker

3. 离线安装docker-compose

  • 如果服务器可以联网,可以直接运行下面的命令
curl -L https://get.daocloud.io/docker/compose/releases/download/v2.7.0/docker-compose-`uname -s`-`uname -m` \
> /usr/local/bin/docker-compose

contos7 离线安装docker docker离线安装包_docker

  • 如果不能联网,则先在PC电脑上浏览器上下载docker-compose: https://get.daocloud.io/docker/compose/releases/download/v2.7.0/docker-compose-Linux-x86_64
    安装步骤如下:
# 上传到服务器,然后mv到/usr/local/bin目录下
chmod +x /usr/local/bin/docker-compose
docker-compose version

结果展示:Docker Compose version v2.7.0

4. 导入及导出

镜像与容器导出的区别:
通过 docker images --tree 可以查看到镜像的所有层,就会发现, docker export 丢失了所有的历史,而docker save 则会保存所有历史

4.1. 镜像导出

docker save 命令用于持久化 镜像,先获得镜像名称,再执行保存:

  • 通过此命令查出要持久化的镜像名称 docker images
  • 持久化镜像名为 image_name 的镜像docker save image_name -o ~/save.tar
  • 以上命令导出image后再导入镜像没有标签,所以需要手工增加标签
  • 示例: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 将镜像从远程仓库持久化到本地。

4.2. 镜像导入

  • 导入 save.tar docker load < ~/save.tar
  • 查看镜像 docker images

docker export 命令用于持久化 容器,先获取容器ID,再执行保存。

4.3. 容器导出

  • 通过此命令查出要持久化的容器ID docker ps -a
  • 持久化容器id为 container_id 的容器 docker export container_id > ~/export.tar

4.4. 容器导入

  • 从 export.tar 导入镜像 cat ~/export.tar | docker import - my-images:latest
  • 查看镜像 docker images