Centos7 离线安装docker

时间:2025-03-27 09:39:37

环境检查

##通过命令cat /etc/redhat-release可以查看版本信息
cat /etc/redhat-release

确认服务环境满足要求之后,我们开始docker安装

资源下载

官方资源下载路径 下载资源包

在这里我选在下载的版本是:docker-20.10. (没有特别要求,默认选了最新版的毛病)

资源包下载后上传到 centos服务器。

开始安装

1、通过命令tar -zxvf ./docker-20.10.解压上传好的安装包
2、通过命令cp docker/* /usr/bin/将解压得到的文件复制到 /usr/bin目录下
3、在 /etc/systemd/system 目录下创建一个文件,用于注册docker服务和开机启动

使用命令 vi /etc/systemd/system/ 创建
文件内容如下:

[Unit]
Description=Docker Application Container Engine
Documentation=
After= 
Wants=
[Service]
Type=notify
ExecStart=/usr/bin/dockerd --selinux-enabled=false --insecure-registry=127.0.0.1
ExecReload=/bin/kill -s HUP $MAINPID
LimitNOFILE=infinity
LimitNPROC=infinity
LimitCORE=infinity
TimeoutStartSec=0
Delegate=yes
KillMode=process
Restart=on-failure
StartLimitBurst=3
StartLimitInterval=60s
[Install]
WantedBy=


4、给service文件设置权限 chmod 777 /etc/systemd/system/
5、使用命令 systemctl daemon-reload 重新加载配置
6、设置docker为开机启动 systemctl enable
7、启动 docker 命令 systemctl start docker
8、查看容器状态 systemctl status docker

到这里 我们的docker 离线安装已经完工。
可以使用docker -v 命令查看安装的版本是否对得上。

修改docker的镜像地址

1、编辑 Docker 配置文件

Docker 的镜像地址配置通常通过修改 /etc/docker/ 文件来实现。如果该文件不存在,可以手动创建一个。

打开或创建 /etc/docker/ 文件:

sudo vi /etc/docker/

2、添加镜像加速器地址

文件中添加你想使用的镜像加速器地址。例如,使用国内的镜像加速器如阿里云、腾讯云等。

以下是阿里云的镜像地址配置:

{
  "registry-mirrors": ["https://<your-aliyun-mirror-id>."]
}

你需要替换 <your-aliyun-mirror-id> 为你在阿里云上申请的镜像加速器 ID。如果你还没有阿里云账号,可以去阿里云控制台创建一个并获取加速器地址。

常见的其他镜像加速器地址:

  • 阿里云https://<your-aliyun-mirror-id>.
  • 腾讯云
  • Docker 官方
  • 网易云.
  • DaoCloud/mirror

3、保存并退出

保存配置文件后,退出编辑器。如果是 vi,可以按 Esc 键,然后输入 :wq 来保存并退出。

4、重新启动 Docker 服务

使配置生效,需要重启 Docker 服务:

sudo systemctl restart docker

5、验证配置

你可以通过以下命令验证 Docker 是否正在使用新的镜像仓库地址:

docker info

查看输出中 Registry Mirrors 部分,确认你的加速器地址是否已生效。

docker导入与导出

1、导出镜像

由于 docker 是以集中的方式管理镜像的,所以在迁移之前,要先从 Docker 中取出镜像。

使用流的方式导出镜像
使用 docker save 命令导出镜像:

sudo docker save mnginx:m1.17.6  > /tmp/mnginx-m1.17.

在默认定义下,docker save 命令会将镜像内容放入输出流中,这就需要我们使用管道(>)进行接收,默认会导出到当前文件夹。

使用指定文件的方式导出镜像

通过 -o 选项指定输出文件:

sudo docker save -o /tmp/mnginx-m1.17. mnginx:m1.17.6

此外,如果使用镜像id导出镜像,在导入镜像的时候会导致镜像没有名字和标签,此时需要使用如下命令给镜像加上名字和版本号

sudo docker tag 718e7f550c04 m2nginx:m1.17.6

2、导入镜像

可以使用 docker load 命令导入镜像:

使用流的方式导入镜像
docker load 命令是从输入流中读取镜像的数据,需要使用管道(<)来传输内容:

sudo docker load < /tmp/mnginx-m1.17.

使用指定文件的方式导入镜像
使用 -i 选项指定输入文件:

sudo docker load -i /tmp/mnginx-m1.17.

3、镜像批量导入导出

docker save docker load 命令还可以镜像批量操作,只要在 docker save 中传入多个镜像名作为参数,它就能够将这些镜像都打成一个包,便于一次性迁移多个镜像。

sudo docker save -o /tmp/ redis:5.0.7 nginx:1.17.6 elasticsearch:7.1.0

装有多个镜像的包可以直接被 docker load 识别和读取,将这个包导入后,所有其中装载的镜像都会被导入到 docker 之中。

4、导出容器

可以使用 docker export 命令直接导出容器,可以把这个命令的作用理解为 docker commit docker save 的过程结合。

sudo docker export -o /tmp/ nginx

5、导入容器

可以使用 docker import 导入容器,需要注意的是,使用 docker import 并非直接将容器导入,而是将容器运行时的内容以镜像的形式导入,所以导入的结果其实是一个镜像,而不是容器。

docker import 的参数里,可以给这个镜像命名:

# 删除已有的镜像
docker rmi mnginx:1.17.6
sudo docker import /tmp/mnginx-m1.17. mnginx:1.17.6