环境检查
##通过命令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