环境检查
##通过命令cat /etc/redhat-release可以查看版本信息
cat /etc/redhat-release
确认服务环境满足要求之后,我们开始docker安装
资源下载
官方资源下载路径 下载资源包
在这里我选在下载的版本是:docker-20.10.9.tgz (没有特别要求,默认选了最新版的毛病)
资源包下载后上传到 centos服务器。
开始安装
1、通过命令tar -zxvf ./docker-20.10.9.tgz解压上传好的安装包
2、通过命令cp docker/* /usr/bin/将解压得到的文件复制到 /usr/bin目录下
3、在 /etc/systemd/system 目录下创建一个docker.service文件,用于注册docker服务和开机启动使用命令 vi /etc/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 --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=multi-user.target
4、给service文件设置权限 chmod 777 /etc/systemd/system/docker.service
5、使用命令 systemctl daemon-reload 重新加载配置
6、设置docker为开机启动 systemctl enable docker.service
7、启动 docker 命令 systemctl start docker
8、查看容器状态 systemctl status docker
到这里 我们的docker 离线安装已经完工。
可以使用docker -v
命令查看安装的版本是否对得上。
docker导入与导出
1、导出镜像
由于 docker 是以集中的方式管理镜像的,所以在迁移之前,要先从 Docker 中取出镜像。
使用流的方式导出镜像
使用 docker save 命令导出镜像:
sudo docker save mnginx:m1.17.6 > /tmp/mnginx-m1.17.6.tar
在默认定义下,docker save 命令会将镜像内容放入输出流中,这就需要我们使用管道(>)进行接收,默认会导出到当前文件夹。
使用指定文件的方式导出镜像
通过 -o
选项指定输出文件:
sudo docker save -o /tmp/mnginx-m1.17.6.tar 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.6.tar
使用指定文件的方式导入镜像
使用 -i 选项指定输入文件:
sudo docker load -i /tmp/mnginx-m1.17.6.ta
3、镜像批量导入导出
docker save 和 docker load 命令还可以镜像批量操作,只要在 docker save 中传入多个镜像名作为参数,它就能够将这些镜像都打成一个包,便于一次性迁移多个镜像。
sudo docker save -o /tmp/my-images.tar 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.tar nginx
5、导入容器
可以使用 docker import 导入容器,需要注意的是,使用 docker import 并非直接将容器导入,而是将容器运行时的内容以镜像的形式导入,所以导入的结果其实是一个镜像,而不是容器。
在 docker import 的参数里,可以给这个镜像命名:
# 删除已有的镜像
docker rmi mnginx:1.17.6
sudo docker import /tmp/mnginx-m1.17.6.tar mnginx:1.17.6