有时候有些服务器没有外网服务器,所以只能离线安装,今天离线安装了个docker,启动镜像的时候全是坑,这里记录下。
1. 离线安装
1.1 下载 Docker 二进制文件(离线安装包)
下载地址:https://download.docker.com/linux/static/stable/x86_64/
注:本文使用 /x86_64/docker-18.06.1-ce.tgz,注意对应操作系统类型。
1.2 通过 FTP工具将 docker-18.06.1-ce.tgz 上传到服务器上
1.3 解压安装包
tar zxf docker-18.06.1-ce.tgz
1.4 将docker 相关命令拷贝到 /usr/bin,方便直接运行命令
sudo cp docker/* /usr/bin/
1.5 启动Docker守护程序
sudo dockerd &
1.6 验证是否安装成功,执行docker info命令,若正常打印版本信息则安装成功。
docker info
1.7 将docker注册成系统服务(记得kill docker服务后,再执行这一步哦)
1.7.1 在 /usr/systemd/system/ 目录下创建docker.service 文件
sudo 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=65535
LimitNPROC=65535
TimeoutStartSec=0
Delegate=yes
KillMode=process
Restart=on-failure
StartLimitBurst=3
StartLimitInterval=60s
[Install]
WantedBy=multi-user.target
1.7.2. 启动 / 停止 docker 服务
systemctl start/stop docker
1.7.3 开机自启/取消开机自启 docker 服务
systemctl enable/disable docker
2. 问题:1:library initialization failed - unable to allocate file descriptor table - out of memoryAborted (core dumped)
启动nacos的镜像时报错,查看start.out日志,只有这一行,查阅资料,意思大概是nofile和nproc这两个设置的是infinity,默认可能是比65535更小的值,手动修改/usr/systemd/system/docker.service
中的LimitNOFILE和LimitNPROC成65535或者更大值后,启动成功。
3. 问题2:exec: “docker-proxy”: executable file not found in $PATH
这个是因为在离线安装docker时,没有将解压后的docker配置文件复制到/usr/bin中,执行离线安装步骤1.4完成。