本文使用的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
- 如果不能联网,则先在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