docker离线安装并导入镜像

/ 0评 / 0

1、下载docker安装文件

离线安装docker,需要下载docker的安装文件。
地址:https://download.docker.com/linux/static/stable/x86_64/

2、离线docker安装

将安装包文件上传到服务器目录并解压。

tar -xvf docker-20.10.17.tar

将解压出来的docker文件内容移动到 /usr/bin/ 目录下,因为/usr/bin是系统环境变量所属范围,方便使用各种docker命令

cp docker/* /usr/bin/

将docker注册为service,在/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
# the default is not to use systemd for cgroups because the delegate issues still
# exists and systemd currently does not support the cgroup feature set required
# for containers run by docker
ExecStart=/usr/bin/dockerd
ExecReload=/bin/kill -s HUP $MAINPID
# Having non-zero Limit*s causes performance problems due to accounting overhead
# in the kernel. We recommend using cgroups to do container-local accounting.
LimitNOFILE=infinity
LimitNPROC=infinity
LimitCORE=infinity
# Uncomment TasksMax if your systemd version supports it.
# Only systemd 226 and above support this version.
#TasksMax=infinity
TimeoutStartSec=0
# set delegate yes so that systemd does not reset the cgroups of docker containers
Delegate=yes
# kill only the docker process, not all processes in the cgroup
KillMode=process
# restart the docker process if it exits prematurely
Restart=on-failure
StartLimitBurst=3
StartLimitInterval=60s
 
[Install]
WantedBy=multi-user.target

添加文件权限并启动docker,执行如下命令:

chmod +x /usr/lib/systemd/system/docker.service
systemctl daemon-reload  #重载unit配置文件
systemctl start docker

Docker离线安装好后,下面我们把镜像导入到Docker。

3、离线镜像文件导入

内网环境没法pull镜像,但是docker本身可以将已有的镜像导出成tar文件,并且可以再次导入到docker,利用这一点,可以实现离线镜像文件的下载。

找一台可以联网的docker机器,并pull下载需要的镜像文件

然后使用如下命令将镜像文件导出:

docker save java:8 -o java.tar  #将java 8的镜像导出成tar文件

将tar文件上传到内网docker服务器,使用如下命令导入镜像文件:

docker load -i java.tar

3.1、批量导出docker镜像

由于工作需要,要一次性导出机器上全部的镜像。使用如下命令将镜像文件导出:

#!/bin/bash
docker save $(docker images --format '{{.Repository}}:{{.Tag}}') -o allinone.tar

注意:

docker images name 和 tag都为none会报错:Error response from daemon: invalid reference format

导入镜像:

docker load -i allinone.tar

4、安装docker-compose容器管理插件

参考下载地址:https://github.com/docker/compose/releases

我这里下载版本为docker-compose-linux-x86_64

将下载的得到的文件复制到docker插件安装目录并重命名:

cp docker-compose-linux-x86_64 /usr/local/lib/docker/cli-plugins/docker-compose

赋予执行权限

sudo chmod +x /usr/local/lib/docker/cli-plugins/docker-compose

查看docker-compose版本

docker-compose -v

其他

docker 开机自动启动: --restart=always

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注